我在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”值),但是构建列表时,我无法设置默认值。
这个想法是接收一个模型(js对象),它包含默认值(真正来自之前持久存储在DB上的WS的html请求),并选择带有来自model的值的默认项,如果是用户选择一个新项目,它可以改变相同的模型(稍后我将更新/再次保存)。
答案 0 :(得分:0)
问题是$scope.inventory.condition
必须是$scope.conditions
数组元素,并且两个对象只有在它们是同一个对象时才相等。所以你不能只设置$scope.inventory.condition = {"name":"Used","id":102};
:event虽然{"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];