常规阵列的角度为1.5X [ngOptions]

时间:2017-05-15 12:18:24

标签: angularjs ng-options

我正在尝试使用角度1.5中的ngOptions属性从Angular中的简单数组创建一个下拉菜单,但是在阅读文档和浏览网页后,我似乎无法使用“简单”工作'数组(对象工作正常)。

我收到了以下数据

 ["Interne Vacatures","Human Resources","Sales"]

我在视图中使用以下代码

<select class="form-control" ng-model="widget.GroupNameSearch" id="widgetselectedGroupName" ng-options="group as widget.GroupNameSearch for group in widget.GroupNameSearch | orderBy:'GroupNameSearch' track by widget.GroupNameSearch">
   <option value="" disabled selected>--- Kies een group ---</option>
   <option value="" ng-if="false"></option>
</select>

但是我的html创建了以下内容: enter image description here

我不确定为什么会产生这些结果,但如果我将我的数组更改为json对象,我可以让它工作。不幸的是,我不会浪费你的记忆。下面是JSON的一个工作示例:

{"groupName": {
    "groupName":"Group 100",
    "mail":"Group100@one365dev1.onmicrosoft.com"}
}



  <select class="form-control" ng-model="widget.selectedGroupName.groupName" id="widgetselectedGroupName" ng-options="group as group.groupName for group in widget.GroupNameSearch | orderBy:'groupName' track by group.groupName" >
                    <option value="" disabled selected>--- Kies een group ---</option>
                    <option value="" ng-if="false"></option> 
                </select>

非常感谢任何帮助。 干杯!

2 个答案:

答案 0 :(得分:1)

这是因为您的选项中有widget.GroupNameSearch

ng-options="group as widget.GroupNameSearch for group in widget.GroupNameSearch.."
//                   ^^^^^^^^^^^^^^^^^^^^^^ this one

您正在尝试再次引用整个数组作为对当前项目的引用。

可以将其读作value as label for collection。现在,您不应该将整个数组本身作为每个项目的label ,不是吗?

相反,您可以像字符串数组一样使用它,

ng-options="group as group for group in widget.GroupNameSearch..

答案 1 :(得分:0)

继续tanmay所说的,确保你的ng-options是这样的。 更多关于这里: ng-options with simple array init

<div ng-controller="Ctrl">
      <select class="form-control" ng-model="widget.selectedGroupName.groupName" id="widgetselectedGroupName" ng-options="a as a for a in groups">

https://jsfiddle.net/brhardwick/4eatv28b/1/