我对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 - 低
我从服务器收到的值严格按数字显示..
然而,在构建编辑表单时,我想在用户可理解的文本中显示这些优先级,即“高”,“低”,“正常”
我创建了一系列对象来实现这一目标 -
vm.priorityOptions = [
{ name: "low", value: -1 },
{ name: "normal", value: 0 },
{ name: "high", value: 1 }
];
现在,我想从我得到的API响应"priority" : 1
中选择默认选择的优先级。由于它是数值,我不知道如何在vm.priorityOptions
相同的任何帮助或有用的片段?
答案 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。