从模板访问所需控制器的属性

时间:2015-01-24 01:32:10

标签: angularjs angularjs-directive

我在指令foo中有一个指令container。 DOM层次结构如下所示:

<container>
  <foo></foo>
</container>

我可以在require: '^container'中使用foo,以便从我的link功能中访问它。但是,我经常想从模板内部访问该控制器,因此我必须在我的link函数中将控制器设置在范围内,并且它变得非常重复。有更好的方法吗?

编辑:显然我太模糊了。这是一个例子:

mod.directive('container', function() {
  return {
    controller: function() {
      this.interesting = "foo";
    }
  };
});
mod.directive('foo', function() {
  return {
    require: '^container',
    scope: {},
    link: function(scope, element, attrs, ct) {
      scope.ct = ct; // this is the annoying line
    }
  };
});

使用这样的模板:

{{ ct.interesting }}

显然,那里的那条线并不是世界末日,但它让我觉得我做错了。有更好的设计吗?

1 个答案:

答案 0 :(得分:0)

这是作为添加到Angular 1.2的功能的控制器用于。

mod.directive('container', function() {
  return {
    controller: function() {
      this.interesting = "foo";
    },
    controllerAs: "ct"
  };
});