Как я могу получить доступ к ngModel из директивы контроллера
function prMySelects() {
var ddo = {
restrict: 'E',
templateUrl: 'template.html',
require: '?ngModel',
scope: {
ngModel: '='
},
controller: prMySelectsController,
controllerAs: 'vm',
bindToController: true
};
return ddo;
}
function prMySelectsController($locale) {
...
}
Мне нужно сделать некоторые проверки внутри контроллера директив и установить ngModel.$ SetValidity('some', false), но получаю ngModel is not defined
ошибка. Внедрение ngModel не помогло...
PS Я знаю, что могу получить к нему доступ в link
, но возможно ли достичь контроллера ngModel в директиве controller
?
1 ответ
Такого рода функциональность лучше всего выполнять внутри функции ссылки для директивы.
function prMySelects() {
return {
restrict: 'E',
require: '?ngModel',
link: function(scope, element, attributes, ngModel) {
scope.theModel = ngModel;
},
controller: function() {
var vm = this;
vm.theModel.$setViewValue...
}
}
}
В этом случае вы фактически подключаетесь к контроллеру ngModel, и вам не обязательно указывать его в области видимости.