[英]$rootscope.$broadcast with $on
我在html控制器中使用Angular js调用函数时遇到问题
<button class="btn" ng-click="test()"> Save</button>
<button class="btn" ng-click="test();test2()"> New</button>
$scope.test= function(){
$http.put(settings.WebApiBaseUrl + 'api/myfile/' , {
headers: {
'X-ApiKey': myKey
}
}).success(function (data) {
$rootScope.$broadcast('data:saved')
$scope.loading = false;
}).error(function (data, status, headers, config) {
$scope.loading = false;
});
}
和其他我调用的功能
$scope.test2=function(){ $scope.$on('data:saved', function (event,tags)
{
$http.post(settings.WebApiBaseUrl + 'api/myfile/' , {
headers: {
'X-ApiKey': myKey
}
}).success(function (data) {
$scope.loading = false;
}).error(function (data, status, headers, config) {
$scope.loading = false;
});
}}
如果我单击一次,它可以正常工作,但ii单击第二次,则第二次循环第二个功能。
您每次单击都在调用test2()
:
ng-click="test();test2()"
每次订阅该事件:
$scope.test2=function(){
$scope.$on('data:saved', function (event,tags)
您只想订阅一次,因此不应每次单击都调用test2()
。 只需调用一次,然后测试test()
广播事件并进行处理即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.