angularjs - 有没有办法制定一个指令,使其只能在某个其他指令中使用?

标签 angularjs

假设我有两个指令,my-awesome-tablemy-awesome-table-cell。我从不想在 my-awesome-table 指令之外使用 my-awesome-table-cell 。有没有办法强制执行此操作?所以在 my-awesome-table 指令之外使用时会抛出错误?

最佳答案

您还可以通过让外部指令在 DOM 上放置一个“ Controller 指令”,然后让内部指令“要求”这个“ Controller 指令”来实现这一点。

请参阅此 Plunk:http://plnkr.co/edit/QPNPu4。

app.directive('myAwesomeTable', function() {
  return {
    controller: function($scope) {},
    link: function(scope, element) {
      ...
    }
  };
});

app.directive('myAwesomeTableCell', function() {
  return {
    require: '^myAwesomeTable',
    link: function(scope, element, attributes, controller) {
      ...
    }
  };
});

您还可以使用 ?^ 将要求设为可选,然后在您的链接函数中检查正在定义的 Controller 参数(如果您希望对此进行细粒度控制)。

关于angularjs - 有没有办法制定一个指令,使其只能在某个其他指令中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13302812/

相关文章:

javascript - 测试中 AngularJS 中 Controller 初始化时调用的模拟操作

javascript - 如何从另一个 Controller 函数调用具有不同 templateurl 和 Controller 的指令?

javascript - 服务 Controller 中的成功和错误函数

javascript - 选择文本或拖动时 ng-click 触发

javascript - 如何使用复选框来过滤 Angular 的结果?

angularjs - AngularJS 显示或隐藏表单元素的方式是什么?

java - 使用 Spring Security 和 AngularJS 预防 CSRF

javascript - 如何使用 angularjs 更改另一个选择标签的值?

javascript - el.bind 不是 angularjs 中的函数错误

angularjs - 玩转框架2、AngularJS和国际化