2016-05-03 23 views
0

我有不同的NG-点击事件,我想所有这些在一次上点击按钮如何触发点击角JS多个Click事件

例被触发现在

<div ng-controller="one"> 
    <input type="button" id="one" ng-click="firstBtnClick(a,b)" class="fstClass"/> 
</div> 
<div ng-controller="two"> 
    <input type="button" id="two" ng-click="SecBtnClick(c,d)" class="SecClass"/> 
</div> 
<div ng-controller="three"> 
    <input type="button" id="three" ng-click="ThirdBtnClick(e,f)" class="ThirdClass"/> 
</div> 

我想打其他按钮这一切单击功能

<div ng-controller="final"> 
<input type="button" id="final" ng-click="finalBtnClick" class="FinalClass"/> 
</div> 

最终控制码

$timeout(function() { 
angular.element('.fstClass', '.SecClass').triggerHandler('click'); 
}, 0); 

但是我无法实现,有什么建议?

回答

0

如果函数是可以链接在一起这样相同的控制器:

<input type="button" id="final" ng-click="firstBtnClick+SecBtnClick+ThirdBtnClick" class="FinalClass"/> 

对于跨控制器的通信可以创建并注入共享服务到每个控制器,巢控制器,使用$ rootscope或使用$ emit:

function FirstController($scope) 
{ 
    $scope.$on('clickFirst', function(event, args) { 
     firstBtnClick(args)//click first button 
    }); 
    // another controller or even directive 
} 

function FinalController($scope) 
{ 
    $scope.$emit('clickFirst', args); 
} 
+0

每次单击是在不同的控制器和有每次点击功能不同的参数?? – Sultan

0

为什么要在视图中这样做?您每按一下按钮都会调用控制器功能。

所以只是有一个ng-click="everyClick()"而这个控制器 函数内部,调用你想调用各项功能。

所以:

$scope.finalBtnClick = function() { 
$scope.firstBtnClick(); 
$scope.SecBtnClick(); 
$scope.ThirdBtnClick(); 
} 
+0

不同控制器无法呼叫这些 – Sultan

+0

每次点击都在不同的控制器中,每个点击功能都有不同的参数 – Sultan