我正在尝试在多选中预选选项。为了清楚说明我的情况,我做了一个JSFiddle。
<select ng-model="properties" id="props" multiple
ng-options="option.name group by option.category for option in options"></select>
不幸的是,我受到接收对象的限制,所以我想我需要ng-options属性。
有没有人知道如何让'美国队长'和'博士' Doom'在加载时选择了吗?
答案 0 :(得分:3)
尝试将控制器代码更改为:
function TestCtrl($scope) {
var myOptions = [{
"id": "4",
"name": "Captain America",
"categoryId": "1",
"category": "Heroes"
}, {
"id": "5",
"name": "Iron Man",
"categoryId": "1",
"category": "Heroes"
}, {
"id": "10",
"name": "Magneto",
"categoryId": "2",
"category": "Vilains"
}, {
"id": "9",
"name": "Dr. Doom",
"categoryId": "2",
"category": "Vilains"
}];
$scope.options = myOptions;
$scope.properties = [myOptions[0], myOptions[3]];
}
说明:您将所选选项(属性)设置为对象的不同实例,而不是组成完整列表的实例。使用与上面所示相同的对象引用。
答案 1 :(得分:2)
你非常接近,两个变化。像这样定义控制器中的属性
$scope.properties = ["Captain America", "Dr. Doom"];
并为你的ng-options添加一小段
ng-options="option.name as option.name group by option.category for option in options"
您的option.name将确定$ scope.properties
中保存的功能的外观