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. Я не понимаю, что происходит в этом. Это дает мне ошибку, связанную с (roleName, enabled) в vm.roleNames
In js:
var vm = this;
vm.roleNames = ['SuperAdmin','Admin','Retailer','Manufacturer'];
vm.selectedRole = vm.roleNames[-1];
Я хочу, чтобы первый элемент был выбран по умолчанию.
В 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/
ng-options="(roleName,enabled) in vm.roleNames"
в этом случае vm.roleNames
- это массив, поэтому roleName
является index
и enabled
является истинным "roleName"
Поэтому ваш код должен выглядеть так:
<select class="element-margin-top" ng-model="vm.selectedRole" ng-options="(index,roleName) as roleName in vm.roleNames">
<option value="">All Roles</option>
</select>
попробуйте это, для первого выбранного defult вы можете использовать $ first
<select ng-model="selectedRole">
<option ng-repeat="name in roleNames "
ng-selected="$first" value="{{name}}">{{name}}</option>
</select>