2016-12-28 71 views
0

在我的應用程序,我想火Ajax調用時NG-click事件發生:爲什麼我的AngularJS ajax自動開火雖然我不叫它?

<ul class="sub"> 
    <li> 
     <a href="javascript:;" ng-class="{active : isSet(1)}" ng-click="getData(); setTab(1)">Bla bla bla</a> 
    </li> 
</ul> 

我的腳本:

angular.module('mainApp', ['smart-table']) 
      .controller('TabController', ['$scope', function ($scope, $http) 
      { 
       $scope.tab = 2; 

       $scope.setTab = function (newTab) 
       { 
        $scope.tab = newTab; 
       }; 

       $scope.isSet = function (tabNum) 
       { 
        return $scope.tab === tabNum; 
       }; 

       $scope.getData = function() 
       { 
        $http({ 
         url: "/goodsList", 
         method: "GET" 
        }).success(function (data, status, headers, config) 
        { 
         angular.copy(data, $scope.oriList); 
        }).error(function(data, status, headers, config) 
        { 
         alert('Error getting data'); 
        }); 
       }; 
      }]); 

當調試我在的IntelliJ腳本,它也停止登錄部分,響應是userinfo(這是spring安全服務的響應)。除了li標籤之外,沒有一行代碼可以觸發ajax調用。

  1. 爲什麼我的ajax在春季安全服務後立刻開火?

  2. 此外,登錄主頁後,我點擊李標籤,但Ajax調用不火,因爲調試器不會在斷點處停止。我犯了什麼錯誤?

enter image description here

回答

0

編輯

JS

angular.module('mainApp', []) 
       .controller('TabController', ['$scope','$http' ,function ($scope, $http) 
       { 
        $scope.tab = 2; 

        $scope.setTab = function (newTab) 
        { 
         $scope.tab = newTab; 
        }; 

        $scope.isSet = function (tabNum) 
        { 
         return $scope.tab === tabNum; 
        }; 


        $scope.getData = function(){ 

         $http({ 
          url: "/goodsList", 
          method: "GET" 
         }).then(function(response){ 
          angular.copy(data, $scope.oriList); 
         } , function(response){ 
          alert('Error getting data'); 
         }); 
        } 

        $scope.s = function(){ 
         alert("AXX"); 
        } 
       }]); 

HTML

<div ng-app="mainApp" > 
<div ng-controller="TabController"> 
    <ul class="sub"> 
    <li> 
     <button ng-class="{active : isSet(1)}" ng-click="getData(); setTab(1)">Bla bla bla</button> 
     <button ng-click="s()"> 
      omri lugasi 
     </button> 
    </li> 
</ul> 
</div> 
</div> 
+0

我添加'$ http'但沒有什麼變化 –

+0

秒把小提琴@hai_uit –

+0

修復我的答案看看getData函數@hai_uit –

0

問題解決!在查看瀏覽器控制檯輸出,Sateesh庫馬爾說,控制檯說:$ http(...)。成功不是一個函數,我改變我的阿賈克斯函數,如this solution和它的工作

相關問題