如何在ng-options中将其中一个项目设置为默认值?

时间:2017-01-05 17:20:39

标签: angularjs default ng-options angularjs-ng-options

假设这是我的控制器:

function MainController(someService) {
    var vm = this;
    // remote call to load items
    var vm.items = someService.loadItems();
    /*
    * item's are something like this:
    * [
    *       {
    *           "id" : 15,
    *           "topic" : "مرکز  شهید بلباسی",
    *           "default" : false
    *       }, {
    *           "id" : 14,
    *           "topic" : "مرکز  شهید کاوه",
    *           "default" : false
    *       }, {
    *           "id" : 13,
    *           "topic" : "مرکز  شهید زین الدین",
    *           "default" : false
    *       }, {
    *           "id" : 4,
    *           "topic" : "مرکز شهید حسین همدانی",
    *           "default" : true
    *       }
    *   ]
    */
}

这是选择标记:

<select ng-model="vm.searchFilter.itemId"
        ng-options="item.id as item.topic for item in vm.items">
    <option value=""></option>
</select>

现在,我想将所选项设置为default属性为true的项目,并且不希望为此目的使用ng-model选择标记。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您可以尝试将选项传递给过滤器。

directory.root.nativeURL + 'sample.pdf'

然后你应该获得选项为true的所有选项。

修改

要将该选项设置为默认值,您必须使用选项标记重复,并使用ng-options="item.id as item.topic for item in vm.items | filter:item.default=='true'" 设置默认选项。你可以试试这样的东西:

ng-selected

答案 1 :(得分:0)

要默认拥有选项,只需确保在ng-model代码的select中设置特定选项。

<select ng-model="defaultVal"
        ng-options="item.id as item.topic for item in vm.items">
    <option value=""></option>
</select>

现在选择控制器中的默认值

$scope.defaultVal = items[3].id;