javascript - ngView 中指令使用的远程数据存储在哪里? (AngularJS)

标签 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 选项再次执行,范围为空。需要等待一段时间远程服务器的数据响应然后显示数据。我试图避免布局拉伸(stretch)。

我是 Angular 新手,我阅读了文档。

我的问题是:这种情况下,数据保存在哪里比较好?我需要制作一个 Controller 吗?或者我可以直接缓存它?

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

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

最佳答案

您可以将数据存储在服务中,基本上就像您提到的那样充当缓存。如果您需要在页面重新加载时使用该数据(硬刷新,您的应用程序再次重新加载),您可以将其存储在 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);
     }

   }
 }
})

关于javascript - ngView 中指令使用的远程数据存储在哪里? (AngularJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28038881/

相关文章:

angularjs - 将 JSON 对象转换为 TypeScript 类实例

javascript - element.find 不适用于 ng-switch 中的嵌套元素

javascript - 可以禁用 CMS 的冲突 native JavaScript onSubmit 脚本吗?

javascript - 如何将大文件存储到网络本地存储?

javascript - 为什么我的元素只附加到一个类?

javascript - 打印后 Electron 崩溃

angularjs - Angular UI $modal 组件转换

javascript - AngularJS $http 服务成功但数据库未更新

javascript - 使用指令范围中的参数从 Angular 指令中的服务加载数据

javascript - angularjs 可拖动指令