如何在角度js中获取数组元素?

时间:2015-09-23 18:52:11

标签: javascript angularjs

In html
<select class="element-margin-top" ng-model="vm.selectedRole" ng-options="(roleName,enabled) in vm.roleNames">
                <option value="">All Roles</option>{{vm.roles[0]}}
            </select>

我想在select options中显示所有数组元素。我不明白这里发生了什么。它在vm.roleNames中给出了与(roleName,enabled)相关的错误

In js:
 var vm = this;
 vm.roleNames = ['SuperAdmin','Admin','Retailer','Manufacturer'];
 vm.selectedRole = vm.roleNames[-1];

我希望默认选择第一个元素。

3 个答案:

答案 0 :(得分:2)

ng-options="(roleName,enabled) in vm.roleNames"在这种情况下,vm.roleNames是一个数组,因此,roleNameindexenabled是真实的"roleName" < / p>

所以你的代码应该是这样的:

<select class="element-margin-top" ng-model="vm.selectedRole" ng-options="(index,roleName) as roleName in vm.roleNames">
         <option value="">All Roles</option>
</select>

答案 1 :(得分:0)

试试这个,首先通过defult选择你可以使用$ first

<select   ng-model="selectedRole">
                        <option ng-repeat="name in roleNames "
                            ng-selected="$first" value="{{name}}">{{name}}</option>
                </select>

答案 2 :(得分:0)

在html中:

<select class="element-margin-top" ng-model="vm.selectedOption">
                    <option value="">All Roles</option>
                    <option ng-repeat="item in vm.optionNames" value="{{item}}">{{item}}</option>
                </select>

在js中: -

vm.optionNames = ['User', 'Account', 'Brand'];
  vm.selectedOption = vm.optionNames[-1];

尝试阅读http://www.undefinednull.com/2014/08/11/a-brief-walk-through-of-the-ng-options-in-angularjs/