AngularJS在下拉列表中设置默认选定选项

时间:2014-12-24 08:28:58

标签: angularjs ng-options

我对AngularJS比较陌生。学习它的每一点。我已经在KnockoutJS工作了几年,并且发现使用JavaScript很舒服。

我正在开发一个简单的任务管理器应用程序,该应用程序在针对单个任务的API调用时具有以下JSON。

{
                      "Id": 1,
                      "title": "Culpa nisi irure qui consectetur non reprehenderit incididunt mollit voluptate culpa enim.",
                      "description" : "test description",
                      "owner": "Hunter Mcdonald",
                      "priority": 1,
                      "isActive": false,
                      "picture": "http://placehold.it/100x100",
                      "registered": "2014-12-29T17:13:33"
                  }

优先级值的含义是:

1 - 高, 0 - 中性, -1 - 低

我从服务器收到的值严格按数字显示..

然而,在构建编辑表单时,我想在用户可理解的文本中显示这些优先级,即“高”,“低”,“正常”

enter image description here

我创建了一系列对象来实现这一目标 -

vm.priorityOptions = [
    { name: "low", value: -1 },
    { name: "normal", value: 0 },
    { name: "high", value: 1 }
];

现在,我想从我得到的API响应"priority" : 1中选择默认选择的优先级。由于它是数值,我不知道如何在vm.priorityOptions

中选择默认选择的选项

相同的任何帮助或有用的片段?

2 个答案:

答案 0 :(得分:2)

您可以使用ng-model

轻松实现此目的
<select ng-model="serverResponse.priority">
       <option ng-repeat="item in priorities" value="{{item.value}}">{{item.name}}</option>
</select>
将自动选择

serverResponse.priority

答案 1 :(得分:2)

您可以在ngOptions上使用<select>指令:

<select ng-options="item.value as item.name for item in vm.priorityOptions" 
        ng-model="vm.data.priority">
</select>

这是一个有效的plunker