Javascript AngularJS-如何向子指令添加功能

Javascript AngularJS-如何向子指令添加功能,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我有一个指令,其中包括另一个指令 child指令在我的整个应用程序中广泛使用,而parent指令只在一个地方使用 我想向child指令的input元素添加一个绑定。但是,只有当指令放在父指令中时,才需要此绑定,而不是将其用作独立指令时 现在我想知道最好的方法 我考虑循环父指令的子节点,直到到达输入,然后绑定到它。然而,这将导致一个令人困惑的、愚蠢的过程,比如: $element.find('suggestion').childNodes[0].childNodes[1] // ... and

我有一个指令,其中包括另一个指令

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

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

现在我想知道最好的方法

我考虑循环父指令的子节点,直到到达
输入
,然后绑定到它。然而,这将导致一个令人困惑的、愚蠢的过程,比如:

 $element.find('suggestion').childNodes[0].childNodes[1] // ... and so on
如果我试图直接找到输入,就会得到一个空对象


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

通常的方法是使用父指令的控制器,并在范围中添加“建议”。Angular通过ng model='suggestion'绑定您的子指令

您的父指令如下所示:

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" />


如果您发布一些代码或最好执行一个PlunkerI,我看不出我是如何做到的,因为suggestion指令使用的是一个独立的作用域,正如我所说的,这将是实现它的一般方法。如果您共享代码(通过Plunker),我可以根据您的情况给您一个答案您可以从child指令调用parent指令上的方法。因此,您可以执行一种方法,其中child指令将自身添加到父级上的数组中,而执行绑定的第二种方法。我在这里举了一个例子: