一个angularjs指令可以要求自己吗?

前端之家收集整理的这篇文章主要介绍了一个angularjs指令可以要求自己吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
指令是否需要自己?这是一个 example

app.directive('menu',function () {
  return {
    restrict: 'E',require: '?^menu',link: function(scope,element,attrs,ctrl) {
      console.log('ctrl: ',ctrl);

      if (ctrl) {
        element.addClass('nested');
      } else {
        element.addClass('notnested');
      }
    }
  };
});

在我的测试中它似乎不起作用(ctrl总是未定义).见plunk

顺便提一下,在回答了这个问题后,我发现在这种情况下,插入符号(^)没有效果,传递给链接函数的控制器总是实例自己的控制器. [plunk]

解决方法

您应该直接定义控制器函数以将指令API暴露给其他指令:

app.directive('menu',controller: function($scope){  },ctrl);

      if (ctrl) {
        element.addClass('nested');
      } else {
        element.addClass('notnested');
      }
    }
  };
});

http://plnkr.co/edit/cKFuS1lET56VOOYD5rrd?p=preview

猜你在找的Angularjs相关文章