Я получаю несколько вызовов одного и того же вызова функции ajax, когда переключаю представления из навигации. Скажем, я нахожусь в Residents.html, ajax срабатывает только один раз (обычно). ЗАПИСЬ localhost: 64752 / api / Residents / GetResidents
Теперь, если я перейду к Home.html и вернусь к Residnets.html на каждый щелчок навигации, он срабатывает дважды. локальный: 64752 / api / Residents / GetResidents localhost: 64752 / api / Residents / GetResidents
Теперь, если я снова перейду к Home.html и вернусь к Residents.html, он сработает 3 раза. локальный: 64752 / api / Residents / GetResidents localhost: 64752 / api / Residents / GetResidents localhost: 64752 / api / Residents / GetResidents
Чем больше вы переходите со страницы на страницу, тем больше звонков. Представления или страницы .html не содержат контроллер ng-controller, так что это ясно.
Все вызовы ajax поступают для контроллеров, и у меня есть некоторые директивы, которые я создал, которые также используют вызовы ajax.
// app.js var app = angular.module («квартира», [«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
} ()); // конец вложения