每當我使用View
重定向時(我使用href來做到這一點),我可以看到AngularJS運行GetAjaxData1
,GetAjaxData2
。換句話說:不是對服務器的單個初始請求,而是我每次做View
重定向。哪裏不對?如何在沒有連續服務器請求的情況下在AngularJS中查看重定向
這裏是我的AngularJS代碼:
myApp.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/', {
controller: 'UController',
templateUrl: '/Partial/View1.html'
}).when('/View2', {
controller: 'UController',
templateUrl: '/Partial/View2.html'
}).otherwise({redirectTo: '/View3'});
}]).factory('uFactory', function() {
var factory = {};
data1 = [];
data2 = [];
factory.getAjaxData1 = function() {
$.ajax({
url: url,
type: 'GET',
contentType: "application/json",
async: false,
success: function (result) {
data1 = result;
}
});
return data1;
};
factory.getAjaxData2 = function() {
$.ajax({
url: url,
type: 'GET',
contentType: "application/json",
async: false,
success: function (result) {
data2 = result;
}
});
return data2;
}
};
var controllers = {};
controllers.uController = function ($scope, $location, uFactory) {
$scope.data1 = uFactory.getAjaxData1();
$scope.data2 = uFactory.getAjaxData2();
};
可能不應該使用'異步:FALSE'因爲它會鎖定在請求完成之前,UI還應該使用Angular的[$ http](https://docs.angularjs.org/api/ng/service/$http)服務,而不是jQuery的ajax –