2014-12-15 11 views
11

Meine zu lösenden Abhängigkeiten beruhen auf Daten, die sich ändern. Wie zwingst du Winkel, um Abhängigkeiten aufzulösen wieder?Angular: force resolve again

$routeProvider. 
    when('/blah', { 
    templateUrl: '/static/views/myView.html', 
    controller: 'myCtrl', 
    resolve: { 
     theData: function(myFactory) { 
      return myFactory.promise; 
     } 
    } 
    }). 

das heißt, jedes Mal wenn dieser when Block ausgeführt wird, ich will die Abhängigkeit wieder aufzulösen.

Ist das trivial, oder nicht so viel?

Antwort

3

Auflösungsblock wird bei jeder Änderung der Route erneut überprüft. In Ihrem Fall müssen Sie jedes Mal neue Versprechen abgeben, anstatt wie Sie es gerade tun. Sieht so aus, als ob Sie immer das gleiche Versprechen Objekt zwischenspeichern und zurückgeben.

resolve: { 
    theData: function(myFactory) { 
     return myFactory.getSomething(); 
    } 
} 

Make myFactory.getSomething return new Versprechen in jedem Aufruf.