在ngView中存储指令使用的远程数据的位置? (AngularJS)

时间:2015-01-20 06:16:40

标签: javascript angularjs angularjs-directive

仅举例:

我在ngView内有这种结构的指令:

.directive('features', function() {
    templateUrl: '.../',
    link: function(scope) {
        // HTTP req, getting remote data.
        // Store the remote data to the scope
    }
})

当我更改路径并将其返回时,再次执行指令link选项,范围为空。它需要等待一段时间才能从远程服务器进行数据响应,然后显示数据。我试图避免布局拉伸。

我是棱角分明的新手,我阅读了文档。

我的问题是:在这种情况下,数据是否可以保存?我需要制作一个控制器吗?或者我可以缓存它?

注意:此指令重复一个数组(远程数据)并制作“功能”HTML布局。该指令将用于具有其他行为的其他路由。

需要代码解释,我可以阅读文档。我接受术语。

1 个答案:

答案 0 :(得分:1)

您可以将数据存储在服务中,基本上可以像您提到的那样充当缓存。如果您需要在页面重新加载时提供该数据(硬刷新,您的应用程序再次重新加载),您可以将其存储在cookie /本地存储中。

app.service("featuresService",function($http){
 var cachedFeatures=null;
 return{
   getFeatures:function(callback){
     if(!cachedFeatures){
       $http.get("...").success(function(data){
             cachedFeatures=data;
             callback(data);
       })
     }else{
             callback(cachedFeatures);
     }

   }
 }
})