2016-05-17 5 views
-1

私は変数値を非同期メソッドに設定したい(データはdbからロードされます)、問題は値が最後のレコードに設定されることです。ここに私のコードは次のとおりです。変数値を非同期メソッドに代入する

var _resolve = { 
    lazyLoad: ['$ocLazyLoad', function($ocLazyLoad) { 
     return $ocLazyLoad.load(angular.copy(angular.fromJson(menu.resolve))); 
    }] 
} 

データ例:

> -- one.js 
> -- two.js 
> -- three.js 

上記のコードから、menu.resolveメニュー解決はすべての行に「three.js」を返します、データベースからオブジェクトです。各行に変数の値を設定する方法は?

ありがとうございました! :)

+0

が鳴りUに例を与えますDOMを適切に手動で更新します。 –

答えて

0

これは、あなたが何をする必要があるかjavascriptの自然の典型的なものである。この問題を解決するためにあやふやクロージャを使用している私は、あなたがJSONをパースする必要があるとしているよう

for(var i=0;i<=2;i++;) 
{ 
      (function(myVar) { // this will hold a value of i 
        $("#someDom").append(myVar)//whatever ur logic should be here 
      })(i); 
} 
+0

ループの中で関数を作成することは**恐ろしい練習です**、結果を理解していないかもしれないjavascriptに新しいそれらにさらに多くの損害を引き起こします。 – Azamantes

+0

ありがとう! 状態= { \t \t \t \t \t URL:menu.url、 \t \t \t \t \tタイトル:menu.title、 \t \t \t \t \tアイコン私PROBは、ここに私の変更されたコードで、解決されました: menu.icon、 \t \t \t \t \t \t \t \t templateUrl:menu.template_url、 \t \t \t \t \tコントローラ:menu.controller、 \t \t \t \t \t解決:ResolverFunc(メニュー) \t \t \t} iはループの外側で機能を置きました。 –

関連する問題