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