Я создаю набор полей выбора, которые привязаны к списку значений в моем представлении, используя директиву с тегом select в нем, на div. Они заполняются некоторыми значениями, но после их рендеринга я хочу установить значение в зависимости от уже сохраненного значения в нем.AngularJS Задает переменную области видимости до загрузки до отображения
Я пытаюсь сделать это, установив значение модели в ng-init
, используя функцию, которую я вызываю в контроллере, который инициализирует массив с сохраненными значениями в нем.
Тем не менее, массив всегда не определен, когда отображаются поля выбора и вызывается ng-init
.
Как обеспечить, чтобы переменная всегда была установлена, когда в ячейках выбора вызывается ng-init
?
angular.module('myapp')
.controller('aclCtrl', function()
{
$scope.retrieveSetValues(id)
{
//.then promise to GET stored values, defined in a factory, sets variable that is accessed in initializeSelects()
}
$scope.retrieveSetValues($scope.myID);
}
Вид:
директива селектор:
.directive("selector", [
function() {
return {
controller: function() {
this.myValues= ['a', 'b', 'c'];
},
require: 'ngModel',
controllerAs: 'ctrl',
scope: {
'ngModel': '='
},
template: '<select ng-model="innerModel" ng-change="updateInnerModel()" ng-options="v for v in ctrl.myValues"> </select>',
link: function(scope, elem, attrs, ngModelController) {
scope.innerModel = scope.ngModel;
scope.updateInnerModel = function() {
ngModelController.$setViewValue(scope.innerModel);
};
}
};
}
])
Проблема заключается в том, что я не вижу переменную я устанавливаю в вызове возможности для retrieveSetValues()
в вызове ng-init initializeSelects()
.
Я пробовал оба, вызывая его в контроллере и вызывая его от ng-init
перед тем, как попытаться получить доступ к сохраненным значениям в initializeSelects()
.
Я новичок в угловом, мое понимание того, как работает весь цикл дайджест, - уровень новичка. :(
Любая помощь приветствуется !!
Спасибо Фабио, я на самом деле создаю набор выборок, и мне нужно установить их значения в цикле, либо в ng-init, либо в противном случае. (отредактировал код просмотра для вашей справки) –