2016-05-17 14 views
-1

help me, ich möchte den Variablenwert in die asynchrone Methode setzen (Daten werden von db geladen), das Problem wird auf den letzten Datensatz gesetzt. hier ist mein Code:Weisen Sie der asynchronen Methode einen Variablenwert zu

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

Beispieldaten:

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

aus dem obigen Code, menu.resolve ist Objekt aus der Datenbank, wird das Menü resolve "three.js" in allen Zeilen zurück. Wie setze ich Variablenwerte in jede Zeile?

Vielen Dank! :)

+0

Klingt wie Sie die JSON analysieren müssen gehen Antwort und manuell das DOM entsprechend aktualisieren. –

Antwort

0

Dies ist typisch für Javascript-Art, was Sie tun müssen, ist eine zweifelhafte Schließung, um dieses Problem zu lösen, ich u ein Beispiel

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

Erstellen von Funktion innerhalb einer Schleife ist eine ** schreckliche Praxis **, verursacht noch mehr Schaden für diejenigen, die neu in Javascript, die möglicherweise nicht einmal die Folgen verstehen. – Azamantes

+0

danke! mein prob ist nun gelöst, hier ist mein geänderten Code: state = { \t \t \t \t \t url: menu.url, \t \t \t \t \t Titel: menu.title, \t \t \t \t \t Symbol: menu.icon, \t \t \t \t \t \t \t \t templateUrl: menu.template_url, \t \t \t \t \t Controller: menu.controller, \t \t \t \t \t beheben: ResolverFunc (Menü) \t \t \t } i platziert Funktion außerhalb der Schleife. –

Verwandte Themen