当我从导航切换视图时,我正在多次调用同一个ajax函数调用。假设我在Residents.html上,ajax只会触发一次(通常)。 POST localhost:64752 / api / Residents / GetResidents
现在,如果我导航到Home.html并导航回每个导航的Residnets.html,则会触发两次触发器。 本地主机:64752 / API /居民/ GetResidents 本地主机:64752 / API /居民/ GetResidents
现在,如果我再次导航到Home.html并导航回Residents.html,它会被触发3次。 本地主机:64752 / API /居民/ GetResidents 本地主机:64752 / API /居民/ GetResidents 本地主机:64752 / API /居民/ GetResidents
您在页面之间导航的次数越多,呼叫次数就越多。 视图或.html页面不包含Controller 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"
});
});
//居民控制器 (function(){
'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 :(得分:0)
我发现了问题。我使用了许多指令来进行ajax调用。由于某些奇怪的原因,这会导致在ajax中通过$ routesprovider在页面之间来回导航时发生多个ajax调用。所以我从指令中删除了ajax调用并将它们放在函数中。