2014-12-24 197 views
0

我对AngularJS比较陌生。学习它的每一点。我几年来一直在KnockoutJS上工作,并且发现在JavaScript上工作​​很舒服。AngularJS在下拉菜单中设置默认选择的选项

我正在处理一个简单的任务管理器应用程序,它具有以下JSON作为结果在单个任务的API调用上。

{ 
         "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 - 低

,我从服务器获得的价值是严格数值......

但是,当编辑表格时,我想在用户可理解的文本中显示这些优先级,即“H对象的室内运动场”, “低”, “正常”

enter image description here

我创建阵列来实现这一点 -

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

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

任何帮助或有帮助的片段都一样吗?

+0

用ng-model选择例如like。 ..试试这个,它应该可以工作。 – cjmling

+0

你也可以使用跟踪,以防万一你想绑定完整的对象,但服务器只给你价值部分 – harishr

回答

2

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

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

这里是一个工作plunker

+0

它的工作..足够简单 –

2

可以轻松实现这一点使用NG-模型

<select ng-model="serverResponse.priority"> 
     <option ng-repeat="item in priorities" value="{{item.value}}">{{item.name}}</option> 
</select> 

serverResponse.priority将自动选择

+1

感谢您的努力和帮助:-) –

相关问题