Javascript 在两次选择中设置默认值?
我的选择有些问题。以下是代码:Javascript 在两次选择中设置默认值?,javascript,html,angularjs,select,angularjs-scope,Javascript,Html,Angularjs,Select,Angularjs Scope,我的选择有些问题。以下是代码: <select ng-model="car" ng-options="car.name for car in cars track by car.id" class="form-control"> <option value="">Choose model name</option> </select> <br /> <select ng-options="model.name
<select ng-model="car" ng-options="car.name for car in cars track by car.id" class="form-control">
<option value="">Choose model name</option>
</select>
<br />
<select ng-options="model.name for model in car.models track by model.id" ng-model="model" class="form-control">
<option value="">Choose car</option>
</select>
选择型号名称
选车
我希望当我访问此页面时,这两个选项具有默认值。例如,在第一个选项中选择“BMW”,在第二个选项中同时选择“528I”。我正在尝试执行以下解决方案:
<select ng-model="car" ng-init="car.id = 1" ng-options="car.name for car in cars track by car.id" class="form-control">
<option value="">Choose model name</option>
</select>
<br />
<select ng-init="model.id = 5" ng-options="model.name for model in car.models track by model.id" ng-model="model" class="form-control">
<option value="">Choose car</option>
</select>
选择型号名称
选车
但它只适用于第一次选择。(当我在第一个选择中选择id为1的名称时,第二个选择将切换到id为5的模型;)
我不知道如何同时在两个选择中重新编译默认值。
你有什么想法吗
这里是您可以使用
nginit
,如下所示:
<select ng-init="car=cars[0]" ng-model="car" ng-options="car.name for car in cars" class="form-control">
<option value="">Choose model name</option>
</select>
<br />
<select ng-init="model=car.models[0]" ng-options="model.name for model in car.modelsd" ng-model="model" class="form-control">
<option value="">Choose car</option>
</select>
<select ng-init="car=1" ng-model="car" ng-options="car.id as car.name for car in cars" class="form-control">
<option value="">Choose model name</option>
</select>
<select ng-init="model=5" ng-model="model" ng-options="model.id as model.name for model in ((cars | filter:{id:car})[0].models)" class="form-control">
<option value="">Choose car</option>
</select>
但是,为了用汽车模型呈现第二个选择,您必须做一些非常尴尬的事情,因为在这种情况下,您的变量car
将是int
(汽车的id),而不是“car”对象,因此您必须这样做:
<select ng-init="car=cars[0]" ng-model="car" ng-options="car.name for car in cars" class="form-control">
<option value="">Choose model name</option>
</select>
<br />
<select ng-init="model=car.models[0]" ng-options="model.name for model in car.modelsd" ng-model="model" class="form-control">
<option value="">Choose car</option>
</select>
<select ng-init="car=1" ng-model="car" ng-options="car.id as car.name for car in cars" class="form-control">
<option value="">Choose model name</option>
</select>
<select ng-init="model=5" ng-model="model" ng-options="model.id as model.name for model in ((cars | filter:{id:car})[0].models)" class="form-control">
<option value="">Choose car</option>
</select>
您可以在控制器中使用ng模型属性,并指定一个默认变量,如
<div ng-controller="MyController" >
<form>
<select ng-model="myForm.car">
<option value="nissan">Nissan</option>
<option value="toyota">Toyota</option>
<option value="fiat">Fiat</option>
</select>
</form>
<div>
{{myForm.car}}
</div>
</div>
<script>
angular.module("myapp", [])
.controller("MyController", function($scope) {
$scope.myForm = {};
$scope.myForm.car = "nissan";
} );
</script>
日产
丰田
法令
{{myForm.car}
angular.module(“myapp”,[])
.controller(“MyController”,函数($scope){
$scope.myForm={};
$scope.myForm.car=“日产”;
} );
通过此链接,您将了解angularjs中的表单处理:
Ou!我还有其他问题。我可以用“id”代替数组索引吗?@RomanA。当然可以给我一分钟,我会更新answer@RomanA. 我已经更新了答案,希望这会有所帮助。谢谢这真的很有帮助!你真棒@约瑟夫和公认的答案一样。那个家伙使用了ng init,我在控制器中使用了ng模型,就是这样。:)我寻找没有任何控制器的解决方案,在我的代码中我也使用了ng模型。