1
我有2个控制器,分别为cont_a
和cont_b
,它们分别具有功能fun_a()
和fun_b()
。 我在cont_a
内有一个按钮,如果我点击它,它应该调用这两个函数,并且我不知道从哪里开始。从一个点击呼叫2个不同控制器的功能
谢谢。
我有2个控制器,分别为cont_a
和cont_b
,它们分别具有功能fun_a()
和fun_b()
。 我在cont_a
内有一个按钮,如果我点击它,它应该调用这两个函数,并且我不知道从哪里开始。从一个点击呼叫2个不同控制器的功能
谢谢。
两个选项,使用服务或使用角事件
服务方式
app.service('funcService', function(){
this.fun_a = function(){
alert('fun_a')
}
this.fun_b = function(){
alert('fun_b')
}
}
app.controller('Ctrl_1' , function($scope,funcService){
$scope.callBothFunctions = function(){
funcService.fun_a();
funcService.fun_b()
}
});
app.controller('Ctrl_2' , function($scope,funcService){
$scope.func_b = funcService.func_b;
});
事件的方法
app.controller('Ctrl_1' , function($scope,$rootScope){
$scope.fun_a = function(){
alert('fun_a');
$rootScope.$broadcast('call-fun_b');
}
});
app.controller('Ctrl_2' , function($scope){
$scope.fun_b = function(){
alert('fun_b')
}
$scope.$on('call-fun_b', function(){
$scope.fun_b();
})
});
除此之外,问题不明确,知道最好的方法是什么。通常使用服务是保持控制器代码精简的最佳方式。
关于这些功能的信息不够充分。请显示所有相关代码并更好地说明它们的作用 – charlietfl
该函数仅在其中包含警报,且不包含任何复杂代码@charlietfl –
两个控制器之间的范围关系是什么?另一个控制器是在父范围,子范围还是兄弟范围? – georgeawg