[英]How to use ng-init to select a default value in a select box when the ng-model and the ng-options are referencing different objects
[英]Set default value in <select> with angular ng-options maybe using ng-init
我在HTML中有这个
<select ng-model="inventory.condition"
ng-init="inventory.condition = con"
ng-options="con.name for con in conditions"
<option >-- choose condition --</option>
</select>
{{inventory.condition}}
在js角度控制器上:
$scope.conditions = [
{"name":"New","id":101},
{"name":"Used","id":102},
{"name":"Like new","id":103},
{"name":"Not Working","id":104}
]
$scope.inventory.condition = {"name":"Used","id":102};
SELECT填充工作正常,如果我在列表中选择一个项目,它会正确设置ng-model,而Htlm会正确显示所选的模型(我希望获得完整的所选模型,不仅是“ id”值),但我可以t建立列表时设置默认值。
这个想法是接收一个包含默认值的模型(js对象)(该值实际上来自先前持久保存在DB上的WS的html请求),然后从模型中选择带有该值的默认项,如果用户选择了一个新值项,它可以更改相同的模型(稍后我将再次更新/保持不变)。
事实是, $scope.inventory.condition
必须是$scope.conditions
数组元素,并且两个对象只有在相同对象时才相等。 因此,您不能只设置$scope.inventory.condition = {"name":"Used","id":102};
:事件尽管{"name":"Used","id":102}
看起来像数组的第二个值,但实际上它们不相等,因此Angular不会将其设置为默认值。
您需要像这样设置模型值:
$scope.conditions = [
{"name":"New","id":101},
{"name":"Used","id":102},
{"name":"Like new","id":103},
{"name":"Not Working","id":104}
];
$scope.inventory.condition = $scope.conditions[1];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.