[英]$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.