簡體   English   中英

在ngView內部將指令使用的遠程數據存儲在哪里? (AngularJS)

[英]Where to store remote data used by directive inside ngView? (AngularJS)

例如:

我在ngView使用以下結構的指令:

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

當我更改路線並將其返回時,再次執行指令link選項,范圍為空。 它需要等待一些時間來從遠程服務器進行數據響應,然后再顯示數據。 我試圖避免布局拉伸。

我是新手,我已閱讀文檔。

我的問題是:在這種情況下,保存數據的位置好嗎? 我需要做一個控制器嗎? 或者我可以緩存它?

注意:該指令重復一個數組(遠程數據)並進行“功能” 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);
     }

   }
 }
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM