Uno dei miei AngularJS controllori contiene questa linea:In attesa di promessa di risolvere prima risorsa carico
api.tickets.query()
modulo api
contiene questo:
angular.module('myapp.api', [
'ngResource'
])
.factory('api', function($resource, applicationsService) {
function fetchAppId() {
return applicationsService.getCurrentApp();
}
return {
tickets: $resource('tickets', {
applicationId: fetchAppId
}),
...
}
applicationsService.getCurrentApp() effettua una chiamata http $ si. Quindi puoi forse vedere il problema: questa chiamata potrebbe non essere stata risolta dal momento in cui fetchAppId() restituisce.
Come posso aggirare questo?
Bingo, grazie Maxim, ha funzionato come un fascino. Apprezzo il violino e il dettaglio :) –
Penso che funzioni perché la promessa in $ scope è attesa per il ciclo $ apply(). Come dice la documentazione, "$ q è integrato con il meccanismo di osservazione del modello $ rootScope.Scope Scope in angolare, il che significa una propagazione più veloce della risoluzione o del rifiuto nei modelli ed evitare inutili ridondazioni del browser, il che comporterebbe un'interfaccia utente tremolante". – Plap
se qualcuno usa $ resource per richiesta, allora dobbiamo includere $ promise fetchAppId(). $ Promise.then (function (data) {----}); –