2013-08-31 2 views

risposta

7

È possibile impostare il timeout predefinito con setDefaultHttpFields nella configurazione del RestangularProvider. Restangular implementerà internamente la logica dei tentativi, puoi vederlo da solo giocando con es. il condizionatore di rete iOS (Impostazioni -> Sviluppatore). Tuttavia, è necessario implementare la logica Riprova da soli se è necessario riprovare ad es. quando il timeout è stato raggiunto.

È possibile configurare i valori predefiniti nel modello Restangular, in quanto è anche possibile impostare le opzioni per un singolo fornitore Restangular. Per esempio, qui sia SessionRestangular e AuthenticationRestangular entrambi condividono le impostazioni definite in module.config, ma solo SessionRestangular invierà il "token" e "user_id" nelle intestazioni HTTP:

module = angular.module('SessionModel', ['restangular']) 

module.config (RestangularProvider) -> 
    RestangularProvider.setBaseUrl('https://api.provid.er/v1') 

    RestangularProvider.setDefaultHttpFields 
    timeout: 10000 # Milliseconds 


module.factory 'SessionRestangular', (Restangular, sessionService) -> 
    return Restangular.withConfig (RestangularConfigurer) -> 
    RestangularConfigurer.setDefaultHeaders 
     'user_id': sessionService.getUserId(), 
     'token': sessionService.getToken() 


module.factory 'AuthenticationRestangular', (Restangular) -> 
    return Restangular