bindToController with require in Angular Directive

2019-02-13 02:01发布

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条回答
祖国的老花朵
2楼-- · 2019-02-13 02:25

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;
    }
  }
});
查看更多
登录 后发表回答