Angularjs js触发另一个指令
我试图在指令之间创建一种通用切换功能,其中一个包含模板的指令在另一个指令发生事件之前不会呈现。关于如何将这些联系在一起,有什么建议吗Angularjs js触发另一个指令,angularjs,Angularjs,我试图在指令之间创建一种通用切换功能,其中一个包含模板的指令在另一个指令发生事件之前不会呈现。关于如何将这些联系在一起,有什么建议吗 谢谢 实现这一点的方法有很多 A. 使用事件(但是要小心,当使用时,特别是在指令之间的交互时,您很容易丢失!这就是为什么我没有创建http://plnkr.co 更糟糕的是:代码A未经测试! 因此,请编辑此错误的情况下 在('myEvent',function(e,eargs){…})上使用$rootScope.$on 主指令 从某个指令分派事件: $rootS
谢谢 实现这一点的方法有很多 A. 使用事件(但是要小心,当使用时,特别是在指令之间的交互时,您很容易丢失!这就是为什么我没有创建http://plnkr.co 更糟糕的是:代码A未经测试! 因此,请编辑此错误的情况下
$rootScope.$on
主指令$rootScope.$broadcast('myEvent',{foo:'bar'})
$rootScope
angular.module('myApp',[])
.directive('masterDirective',function($rootScope,$compile/**injects here*/){
var temp=';
返回{
限制:'E',
控制器:函数($scope$element){
返回{
slaveLink:function(){
$element.append($compile(templ)($scope));
}
}
},
链接:函数(范围、元素、属性){
scope.someVar=“我是一个模板,我出生并对世界可见,因为slaveDirective在我自己身上调用了一个函数。”;
}
};
})
.指令('slaveDirective',函数(){
返回{
要求:“^masterDirective”,
限制:'E',
链接:函数(范围、元素、属性、myMasterController){
myMasterController.slaveLink();
}
};
});
您应该提供一些代码!实现这一点的方法有很多……一些细节会有所帮助
angular.module('masterDirective', [])
.directive('masterDirective', function ($rootScope, $compile /**injects here*/) {
var templ = '<p ng-bind="someVar"></p>';
return {
restrict: 'EA',
scope: {},
link: function (scope, element, attrs) {
scope.someVar = "I am a template and I was born and visible to the world, because slaveDirective send me an event to do so.";
$rootScope.$on('myEvent', function(e, eArgs) {
// eArgs.myVar will be 'Jackson';
element.append($compile(templ)(scope));
});
}
}
});
angular.module('slaveDirective', [])
.directive('slaveDirective', function ($rootScope) {
return {
restrict: 'EA',
scope: {},
link: function (scope, element, attrs) {
$rootScope.$broadcast('myEvent', {myArg: 'Jackson'});
}
}
});