仅举例:
我在ngView
内有这种结构的指令:
.directive('features', function() {
templateUrl: '.../',
link: function(scope) {
// HTTP req, getting remote data.
// Store the remote data to the scope
}
})
当我更改路径并将其返回时,再次执行指令link
选项,范围为空。它需要等待一段时间才能从远程服务器进行数据响应,然后显示数据。我试图避免布局拉伸。
我是棱角分明的新手,我阅读了文档。
我的问题是:在这种情况下,数据是否可以保存?我需要制作一个控制器吗?或者我可以缓存它?
注意:此指令重复一个数组(远程数据)并制作“功能”HTML布局。该指令将用于具有其他行为的其他路由。
我不需要代码解释,我可以阅读文档。我接受术语。
答案 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);
}
}
}
})