Ionic:导航到另一个视图时保留$ scope

时间:2014-08-29 12:12:01

标签: angularjs scope angularjs-scope ionic-framework

我正在使用Ionic Framework(Angular + Cordova)开发应用程序。

该应用程序有一个新闻部分,其中包含从JSON中的服务器加载的新闻列表,然后我点击一个新的打开Single New的视图,但是当返回到新闻列表时,$ scope已被清除,必须从服务器再次获取新闻列表。

这是通常的行为还是我做错了什么?

我该如何防止这种行为?

谢谢!

2 个答案:

答案 0 :(得分:7)

您应该将此类数据保存在单独的服务中,具体如下:

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;
    })
}]);

答案 1 :(得分:0)

您也可以使用$rootScope。正如Onosa在评论中提到的那样,每次实例化一个新的控制器时都会注入一个新的$scope变量,但$rootScope(如名称所示)会在应用程序的整个生命周期内保留(它是全球)。