簡體   English   中英

$ rootscope。$ on和$ on一起廣播

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM