【发布时间】:2015-11-16 21:02:25
【问题描述】:
我有一个选择框,定义如下:
<select ng-model="selectedSupplier" ng-options="supplier.name for supplier in suppliers">
</select>
在我的控制器中,我有一个按钮,虽然没有做任何有用的事情,但它可以解释我在更改控制器中的选定值时遇到的问题:
该函数执行时,设置选择框中的选项,设置选中的选项:
$scope.foo = function() {
var foos = [{"id":1,"name":"No 1"},{"id":2,"name":"No 2"},{"id":3,"name":"No 3"},{"id":4,"name":"No 4"}];
$scope.suppliers = foos;
$scope.selectedSupplier = foos[2];
}
但是我把函数改成这样了,它仍然设置选项,但是选中的选项是一个新的空白选项,没有我定义的:
$scope.foo = function() {
var foos = [{"id":1,"name":"No 1"},{"id":2,"name":"No 2"},{"id":3,"name":"No 3"},{"id":4,"name":"No 4"}];
$scope.suppliers = foos;
$scope.selectedSupplier = {"id":3,"name":"No 3"};
}
这里发生了什么?如何使用原始对象以外的对象设置所选选项?
【问题讨论】:
-
您不能以某种方式从列表中查找对象(按 id 或名称匹配)并使用它来设置 selectedSupplier 吗?否则,如果您创建一个新对象,它们将不会匹配并且不会被选中。
标签: javascript angularjs