AngularJS - 如何向child指令添加功能

时间:2014-03-31 07:10:40

标签: javascript angularjs angularjs-directive

我有一个包含另一个指令的指令。

child指令在我的应用程序中被广泛使用,而父指令只在一个地方使用。

我想在子指令的input元素中添加一个绑定。但是,仅当指令放在父指令中时才需要此绑定,而不是将其作为独立指令使用。

现在我想知道最好的方法。

我考虑过循环父指令的子节点,直到我到达input,然后绑定到它。然而,这将导致像这样一个混乱,神奇的过程:

 $element.find('suggestion').childNodes[0].childNodes[1] // ... and so on

如果我试图直接找到输入,我会得到一个空对象。

这是要走的路还是我不知道更好的方法?

1 个答案:

答案 0 :(得分:0)

这样做的一般方法是使用父指令的控制器并添加建议'到范围。 Angular通过ng-model ='建议'来绑定您的孩子指令。

您的父指令将是这样的:

angular.module('yourappname').directive('parentdirective',function(){
   return {
      .....
      controller: 'ParentCtrl',
      .....
   }
}

你的控制器:

angular.module('controller', function($scope){
   $scope.suggestion // note that setting primitives directly on the scope is not recommended
 }

您的孩子指示:

<input ... ng-model="suggestion" />