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
中访问它,但是可以在指令controller
中访问ngModel控制器吗?
答案 0 :(得分: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控制器,并且它不需要您在范围上实际指定它。