Quindi ho una collezione di oggetti nel server Voglio popolare una ng-repeat quando la pagina viene caricata.
avevo un fatto una fabbrica che andò a prendere l'elenco da un risorsa sul server, in questo modo:
app.factory('objectArray', ['$http', function($http) {
// This is returning a $$state object
// instead of response.data...
return $http.post('/get_collection').then(function(response) {
console.log(response.data);
return response.data;
});
}]);
ho avuto questo lavoro codice prima di quando si utilizza ui-router e il resolve nella dichiarazione di stato. Tuttavia, quando iniettare questa fabbrica direttamente nel mio controller, invece di ricevere response.data, ricevo un oggetto $$ $$.
mio regolatore di simile a questa:
app.controller('applicationController', ['$scope', 'objectArray', function($scope, objectArray) {
$scope.array = objectArray;
console.log($scope.array);
}]);
Eventuali duplicati di [Come faccio a restituire la risposta da una chiamata asincrona ?] (http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call); (vedi [questo duplicato] (http://stackoverflow.com/questions/22951208/return-value-after-a-promise) aswell) – Kenney
@Kenney Sono molto curioso di sapere perché questo funziona in angolare ui-router senza alcun codice aggiuntivo, ma in questo caso c'è {$$ stato: oggetto} –
Non sono sicuro, ma non è possibile restituire valori da ['Promise.then'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promessa/allora). Il tuo approccio è stato qualcosa come [questo] (https://github.com/angular-ui/ui-router/issues/77)? – Kenney