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

dnc*_*253 3 angularjs

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

Pet*_* BD 5

您也可以通过获取外部指令将"控制器指令"放在DOM上,然后使内部指令"需要"这个"控制器指令"来完成此操作.

请参阅此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) {
      ...
    }
  };
});
Run Code Online (Sandbox Code Playgroud)

您还可以使用?^将需求设置为可选,然后在链接函数内部检查要定义的控制器参数,如果您希望对此进行细粒度控制.