假设我有两个指令,my-awesome-table
和 my-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/