AngularJS:在多重选择上预选选项

时间:2013-11-26 20:58:12

标签: angularjs

我正在尝试在多选中预选选项。为了清楚说明我的情况,我做了一个JSFiddle

<select ng-model="properties" id="props" multiple 
ng-options="option.name group by option.category for option in options"></select>

不幸的是,我受到接收对象的限制,所以我想我需要ng-options属性。

有没有人知道如何让'美国队长'和'博士' Doom'在加载时选择了吗?

2 个答案:

答案 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

中保存的功能的外观