2016-02-04 3 views
0

При использовании ng-init в комбинации с массивом никогда не возникает значение init. Попробовав все возможные варианты, я надеюсь, что кто-то найдет решение этой проблемы.Ng-init не может инициализировать значение при загрузке

HTML-

<select class="update-invisible" ng-model="user.level" ng-init="user.level" ng-change="updateUserlevel(user)" ng-options="userlevel.id as userlevel.label for userlevel in userlevels track by userlevel.id"></select> 

Примечание: ngmodel (user.level) представляет собой целое число, которое указывает текущее userlevel, в пользовательской информации объекта. В этом объекте пользовательский уровень должен быть обновлен, чтобы изменить разрешение пользователей.

userlevels объект, чтобы соответствовать user.level Int в строку для отображения переднего конца

$scope.userlevels = [{ 
     id: 1, 
     label: 'Regular user' 
    },{ 
     id: 2, 
     label: 'Administrator' 
    }]; 
+0

Можете ли вы создать скрипку, чтобы продемонстрировать свою проблему. Похоже, вы используете ng-init неправильно. –

+0

проблема с вашей дорожкой. Вам действительно нужен трек? –

ответ

1

Вы должны использовать ng-init оценить угловое выражение. Следующий надрез устанавливает level свойства объекта user простора 5.

<div ng-init="user.level = 5"> 
0

проблема с вашей дорожкой путем, удалить дорожку, то он будет работать

<select class="update-invisible" ng-model="user.level = 1" ng-init="user.level" ng-change="updateUserlevel(user)" ng-options="userlevel.id as userlevel.label for userlevel in userlevels"></select> 

ИЛИ ИНАЧЕ

<select class="update-invisible" ng-model="user.level" ng-init="user.level = 1" ng-change="updateUserlevel(user)" ng-options="userlevel.id as userlevel.label for userlevel in userlevels track by userlevel.id"> 
<option value="">--Select one Option--</option> 
</select> 

означает, что у вас есть собственный тег по умолчанию.