If my directive uses "require
" to use a different directive, say ngModel
, and uses isolate scope how am I able to use the bindToController
syntax and still be able to access the injectables (ngModelController
) from the controller?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
How would you do this without bindToController
? All that bindToController: true
does is it binds the isolate scope property scope: { prop: "=" }
to the property of the controller: this.prop
.
In both cases, the way to pass a "required" controller would be the same, which is to require
your own controller and set its property to whatever you want, including other controllers:
app.directive("foo", function(){
return {
require: ["foo", "bar"],
controller: function(){
this.doSomethingWithBar = function(){
this.bar.doSomething();
};
},
controllerAs: "ctrl",
bindToController: true,
link: function(scope, element, attrs, ctrls){
var foo = ctrls[0], bar = ctrls[1];
foo.bar = bar;
}
}
});