我有一個工廠,我有一個函數getExpenseList,它執行一個查詢費用表的ajax調用並給出結果。Angular factory ajax call on every route change
現在我有兩條路線,第一條是通過上述功能推動費用的費用列表,第二條路線是增加。當我進行路由更改並返回到列表頁面時,再次進行ajax調用。理想情況下,我應該能夠將費用對象存儲在第一個Ajax調用中,然後引用同一對象,直到有人手動刷新瀏覽器。
請幫助我。這是我的工廠代碼。理想情況下,如果數據存在,我想引用this.expenses。
admin.factory('expenseFact', ['$http', function($http) {
var expense = {};
this.expenses = "";
expense.getExpenseList = function() {
this.expenses = $http({
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
method: "GET",
url: base_url + "rest/expenses"
});
return this.expenses;
};
return expense;
}]);
這裏是我的控制器代碼
admin.controller('expenseLandCtrl', function ($scope,$rootScope,expenseFact) {
$scope.pageTitle = $rootScope.pageTitle;
expenseFact.getExpenseList().then(function (data) {
$scope.expenses = data.data;
});
});
admin.controller('expenseAddCtrl', function ($scope,$rootScope,expenseFact) {
$scope.pageTitle = $rootScope.pageTitle;
});
我建議你使用模塊模式,並在需要時只調用getExpenseList。在你的工廠總是返回費用,這就是爲什麼它總是會被調用,因爲你使它成爲json對象的一部分費用 – 2014-09-20 08:02:55