我正在使用Ionic Framework(Angular + Cordova)開發應用程序。
該應用程序有一個新聞部分,其中包含從JSON服務器加載的新聞列表,然後點擊新建以打開Single New's View,但是當返回到新聞列表時,$ scope已被清除並且必須從服務器重新獲得新聞列表。
這是通常的行爲還是我做錯了什麼?
我該如何防止這種行爲?
謝謝!
我正在使用Ionic Framework(Angular + Cordova)開發應用程序。
該應用程序有一個新聞部分,其中包含從JSON服務器加載的新聞列表,然後點擊新建以打開Single New's View,但是當返回到新聞列表時,$ scope已被清除並且必須從服務器重新獲得新聞列表。
這是通常的行爲還是我做錯了什麼?
我該如何防止這種行爲?
謝謝!
您應該保存這種數據在一個單獨的服務,事中的這一行:
app.service('NewsService', ['$http', function($http){
var newsPromise;
this.getNews = function(){
if(!newsPromise){
newsPromise = $http.get('news.json');
}
return newsPromise;
};
}]);
app.controller('NewsController', ['$scope','NewsService', function($scope, NewsService){
NewsService.getNews().then(function(data){
$scope.news = data.data;
})
}]);
您還可以使用$rootScope
。正如Onosa在評論中提到的那樣,每次你實例化一個新的控制器時,都會注入一個新的$scope
變量,但是$rootScope
(如名稱所示)在應用程序的整個生命週期中保持不變(這是全局的)。
您應該創建一個'service'對象來檢索並保存這種類型的對象,然後將該服務注入到您的控制器中並從中請求數據 – 2014-08-29 12:14:16
無論如何,$ scope中還有另一個變量用於更改UI和新聞過濾,我需要保存,不能保存與服務 – Sirikon 2014-08-29 12:18:07
[爲什麼我的$範圍屬性保持重置在我的AngularJS應用程序?](http://stackoverflow.com/questions/13939244/why-my-scope- attributes-keep-reseting-in-my-angularjs-application) – aymericbeaumet 2014-08-29 12:21:04