當我從導航切換視圖時,我正在對同一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
}()); //端外殼