如果我的指令使用" require
"使用不同的指令,比如说ngModel
,并使用隔离范围如何使用bindToController
语法并仍能从控制器访问注入表(ngModelController
)? / p>
答案 0 :(得分:21)
如果没有bindToController
,你会怎么做? bindToController: true
所做的就是将隔离范围属性scope: { prop: "=" }
绑定到控制器的属性:this.prop
。
在这两种情况下,通过"所需的方式"控制器是相同的,这是require
你自己的控制器,并将其属性设置为你想要的任何,包括其他控制器:
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;
}
}
});