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 如何在没有watch或rootscope的情况下在独立指令之间进行双向通信?_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 如何在没有watch或rootscope的情况下在独立指令之间进行双向通信?

Angularjs 如何在没有watch或rootscope的情况下在独立指令之间进行双向通信?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个带有独立作用域的通用指令,它控制所有录制活动,如开始录制、停止录制,并且在开始/完成录制时,它应该调用directiveA和directiveB中的相应回调 如何在上述场景的指令之间进行通信 我正在网上搜索这个场景,但找不到解决方案。有人能帮我吗 我建议使用类似eventemitter的角度服务。你可以很容易地把它注射到另一个有棱角的部位。你可以创建一个简单的新的,或者重复使用现有的。我找到了新的实现方法。我创建了下面的应用程序来演示上述场景。如果我做错了,请纠正我 var-app=a

我有一个带有独立作用域的通用指令,它控制所有录制活动,如开始录制、停止录制,并且在开始/完成录制时,它应该调用directiveA和directiveB中的相应回调

如何在上述场景的指令之间进行通信

我正在网上搜索这个场景,但找不到解决方案。有人能帮我吗


我建议使用类似eventemitter的角度服务。你可以很容易地把它注射到另一个有棱角的部位。你可以创建一个简单的新的,或者重复使用现有的。我找到了新的实现方法。我创建了下面的应用程序来演示上述场景。如果我做错了,请纠正我

var-app=angular.module('stackOverflow',[]);
应用程序控制器('MainCtrl',函数($scope){
$scope.name='World';
$scope.commonControl={};
});
应用指令(“commondir”[
“$timeout”,
函数($timeout){
返回{
限制:“EA”,
范围:{
commonControl:“=”
},
链接:功能(范围、元素、属性){
scope.recordControl={
开始:函数(testVar){
console.log('start');
scope.recordControl.onStart(testVar);
$timeout(函数(){
scope.recordControl.onStop(testVar);
}, 2000);
},
停止:函数(testVar){
console.log('stop');
scope.recordControl.onStop(testVar);
}
};
scope.commonControl.getRecordControl=函数(){
返回范围。记录控制;
}
}  
};
}
]);
应用指令(“指令A”[
函数(){
返回{
限制:“EA”,
范围:{
recordControl:“=”,
testVar:“=”
},
链接:功能(范围、元素、属性){
scope.recordControl.onStart=函数(testVar){
log('onStart',testVar);
};
scope.recordControl.onStop=函数(testVar){
log('onStop',testVar);
};
元素绑定('单击',函数(){
console.log(scope.recordControl);
scope.recordControl.start(scope.testVar);
});
}  
};
}
]);
应用指令(“指令B”[
函数(){
返回{
限制:“EA”,
范围:{
recordControl:“=”,
testVar:“=”
},
链接:功能(范围、元素、属性){
scope.recordControl.onStart=函数(testVar){
log('onStart',testVar);
};
scope.recordControl.onStop=函数(testVar){
log('onStop',testVar);
};
元素绑定('单击',函数(){
console.log(scope.recordControl);
scope.recordControl.start(scope.testVar);
});
}  
};
}
]);

安古拉斯普朗克
你好{{name}}

普通的 指令A 指令A1 指令B 指令B1
我需要区分每个指令,指令A和指令B都将使用公共指令。当我从common指令发出事件时,它应该调用指令A/指令B中的相应回调。因此,它不会帮助我也有同样的问题?有解决方案吗??