首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同一个DOM元素上的angular指令是否共享一个作用域?

同一个DOM元素上的angular指令是否共享一个作用域?
EN

Stack Overflow用户
提问于 2013-09-30 18:19:30
回答 1查看 327关注 0票数 2

如果两个angular指令被附加到同一个DOM元素,那么它们是否共享相同的作用域?angular文档隐含地指出了这种情况,如果是这样,那么防止指令之间出现名称间隔问题的最佳实践是什么?

例如。

代码语言:javascript
复制
<div directive-1 directive-2>
</div>

其中,指令-1和指令-2设置了作用域: true或作用域:{...}

EN

回答 1

Stack Overflow用户

发布于 2015-06-09 21:46:03

对于这类事情的最佳实践是指令中的require属性,您应该能够请求directive-1的控制器并通过该控制器访问其作用域。但是现在你也有了一个可以在指令之间共享的API。

代码语言:javascript
复制
app.directive('directive1', function () {
  return {
    require: '^directive1',
    controller: ['$scope', function ($scope) {
      this.$scope = $scope;

      this.sharedFn = function () {

      };

      return this;
    }]
  };
});

app.directive('directive2', function () {
  return {
    require: '^directive1',
    link: function (scope, element, attrs, directive1Ctrl) {
      console.log(directive1Ctrl);
    }
  };
});

app.directive('directive3', function () {
  return {
    require: '^directive1',
    link: function (scope, element, attrs, directive1Ctrl) {
      console.log(directive1Ctrl);
    }
  };
});

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19091710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档