2013-04-02 7 views
36

Im mit der Entschlossenheit Funktionalität mit ein paar Controllern beheben einige Daten zu holen, bevor die Wiedergabe einer neuen Ansicht wie dies in Kicks:AngularJS: Richtig minify-able Syntax, wenn sie mit Controllern

HomeCtrl.resolve = { 
    pictures: function(Picture) { 
     return Picture.getall(); 
    } 
}; 

Hat jemand weiß, wie man das schreibt, also wird der Bild-Dienst, der als Argument übergeben wird, nicht überschrieben, wenn er minimiert wird?

Antwort

54

Sie können die Abhängigkeiten injizieren das folgende Muster verwenden, ist es minification Beweis

HomeCtrl.resolve = { 
    pictures : ['Picture', function(Picture) { 
       return Picture.getall(); 
      }] 
}; 
+7

jeder Ort, an dem Winkel verwendet DI, können Sie diese Syntax verwenden –

+1

Leider funktioniert es nicht für mich. HomeCtrl.resolve = { Bilder: ['$ q', Funktion (a) {}] }; wird Unknown provider melden: aProvider <- a – wukong

+1

@wukong Wenn du den '$ q' Dienst injizieren willst, solltest du es so machen' HomeCtrl.resolve = {pictures: ['$ q', function ($ q) {} ]} ', wenn Sie den Dienst' $ q' UND einen 'a' Dienst injizieren müssen, sollten Sie dies wie folgt tun:' HomeCtrl.resolve = {Bilder: ['$ q', 'a', Funktion ($ q , a) {}]} '. – acrmuui

2

Eine weitere Möglichkeit, Entschlossenheit Funktion minification sicher zu machen:

HomeCtrl.resolve = { 
    pictures: getPictures 
}; 

getPictures.$inject = ['Picture']; 
function getPictures(Picture){ 
    return Picture.getall(); 
} 

Diese Technik den Vorteil der Tatsache nimmt, dass in JavaScript-Funktionen sind auch Objekte und können daher Eigenschaften haben.

Weitere Informationen finden Sie unter https://docs.angularjs.org/guide/di und suchen Sie nach "$ inject".