2016-02-11 18 views
0

當我從導航切換視圖時,我正在對同一ajax函數調用進行多次調用。假設我在Residents.html上,ajax只會觸發一次(通常)。 POST本地主機:64752/api /居民/ GetResidents

現在,如果我導航到Home.html並導航回Residnets.html每個導航點擊它得到兩次觸發器。 本地主機:64752/API /居民/ GetResidents 本地主機:64752/API /居民/ GetResidents

現在,如果我瀏覽到的Home.html再次,然後返回到它被觸發3倍Residents.html。 本地主機:64752/API /居民/ GetResidents 本地主機:64752/API /居民/ GetResidents 本地主機:64752/API /居民/ GetResidents

您瀏覽網頁的各種呼叫的數量都在增加越多。 視圖或.html頁面不包含控制器ng-controller,因此很明顯。

所有的ajax調用都是爲控制器而來的,我也有一些我創建的使用ajax調用的指令。

// app.js var app = angular.module(「apartment」,[「ngRoute」,「ngResource」,「apartment.homeController」,「apartment.apartmentsController」,「apartment.residentsController」,「ngResource 「]);

// Config... 
app.config(function ($routeProvider) { 

    $routeProvider 
     .when("/", { 
      templateUrl: "View/home.html", 
      controller: "homeController", 
     }) 
     .when("/residents", { 
      templateUrl: "View/residents.html", 
      controller: "residentsController" 
     }) 
     .when("/rooms", { 
      templateUrl: "View/rooms.html", 
      controller: "apartmentsController" 
     }) 
     .otherwise({ 
      template: "does not exists" 
     }); 
}); 

//居民控制器 (函數(){

'use strict'; 

var app = angular.module('apartment.residentsController', ['ngResource', 'appartment.services', 'ngMaterial']); 

app.controller('residentsController', function ($scope, $resource, $http, apartmentService) { 

    $scope.getResidents = function() {    

     var req = { 
       method: 'POST', 
       url: url + '/GetResidents', 
       header: { 'Content-Type': 'application/json' }, 
       data: JSON.stringify({ 
        page: $scope.page, 
        pageSize: $scope.pageSize, 
        sort: $scope.sort, 
        filter: $scope.filter, 
        orderby: $scope.orderby 
       }) 
     }; 

     $scope.loading = true; 
     $http(req).then(
      function (data) { 
       $scope.showClientTable = true; 
       $scope.residents = data.data.result;      
       $scope.totalPages = data.data.pages; 
       $scope.loading = false; 
      }, 
      function (data) { 
       console.log(data.error); 
       $scope.loading = false; 
      } 
     ); 
    } 

});//end controller 

}()); //端外殼

回答

0

我發現這個問題。我使用了很多指令來進行ajax調用。出於某種奇怪的原因,這將導致在通過ajax中的$ routesprovider在頁面之間來回導航時發生多個ajax調用。所以我從指令中刪除了ajax調用,並將它們放在函數中。

相關問題