繁体   English   中英

在中设置默认值 <select>与角度ng-options可能使用ng-init

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM