bindToController中带有require的bindToController

时间:2015-01-12 14:09:33

标签: angularjs angularjs-directive angularjs-scope

如果我的指令使用" require"使用不同的指令,比如说ngModel,并使用隔离范围如何使用bindToController语法并仍能从控制器访问注入表(ngModelController)? / p>

1 个答案:

答案 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;
    }
  }
});