举个例子:
我在 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/