Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Angularjs中的指令之间传递回调_Angularjs_Angularjs Directive - Fatal编程技术网

在Angularjs中的指令之间传递回调

在Angularjs中的指令之间传递回调,angularjs,angularjs-directive,Angularjs,Angularjs Directive,当仅从页面模板(带有控制器)传递回调时,将正确解释如何使用JSON对象的值格式化指令模板中回调的用法,如下所示: <a data-ng-click="callback({image: url})"></a> <another-directive data-ng-click="callback()"></another-directive> <another-directive data-ng-click="callback({image:

当仅从页面模板(带有控制器)传递回调时,将正确解释如何使用JSON对象的值格式化指令模板中回调的用法,如下所示:

<a data-ng-click="callback({image: url})"></a>
<another-directive data-ng-click="callback()"></another-directive>
<another-directive data-ng-click="callback({image: url})"></another-directive>

但是,如果该指令只是将回调传递给另一个指令,会发生什么情况。
它是否应该像这样通过回调:

<a data-ng-click="callback({image: url})"></a>
<another-directive data-ng-click="callback()"></another-directive>
<another-directive data-ng-click="callback({image: url})"></another-directive>

或者它应该传递相同的对象格式,如下所示:

<a data-ng-click="callback({image: url})"></a>
<another-directive data-ng-click="callback()"></another-directive>
<another-directive data-ng-click="callback({image: url})"></another-directive>

还是另一种选择?

现在,这些方法中没有一种对我有效。

我想我理解你想要实现的目标,所以我将举一个例子

您有一个控制器(
myController
),该控制器调用一个指令(
myDirective
),该指令调用另一个指令(
anotherDirective
),您希望将一个“回调”函数从
myController
传递到
myDirective
。以下是您如何做到这一点:

angular
.module('myApp',[])
.controller('myController',['$scope',函数($scope){
$scope.foo=函数(参数){
警报('此函数在主控制器上声明,但从几级指令调用。参数:'+param);
};
}])
.directive('myDirective',function(){
返回{
模板:`
我的指令
`,
范围:{
myFunction:“&”
}
}
})
.directive('anotherDirective',function(){
返回{
模板:`
另一个指令
点击我
`,
范围:{
回调:'&'
}
}
});

很高兴我能帮忙!