如何定义Angular指令必须是Angular中某个特定指令的子指令

How to define Angular directive must be a child of a specific directive in Angular?

本文关键字:指令 Angular 定指 何定义 定义      更新时间:2023-09-26

我正在创建指令AngularJS,我如何才能配置它必须是指令a的孩子?

就像这个例子:

<my-modal>
    <m-header>Header</m-header>
</my-modal>

m-header必须是my-modal的子元素,否则会出现异常

您可以使用require参数来满足父指令的要求,如下面的代码所示。

app.directive('mHeader', function() {
  return {
    require: '^^myModal',
    restrict: 'E',
    transclude: true,
    link: function(scope, element, attrs, myModalCtrl) {
      myModalCtrl.close();
    },
    templateUrl: 'my-header.html'
  };
});

同样,当使用require时,你可以访问父控制器,正如你在myModalCtrl上看到的。

这是一种变通方法。你可以比较

 if(elem.parent()[0].localName= 'my-model') {
 }

这样你就可以知道它是否是那个元素的直接子元素