2013-08-01 14 views
10

Mi piacciono tutte le funzioni di Restangular per AngularJS, tranne per il fatto che non riesco a trovare (e potrebbe non supportare) un modo per passare semplicemente un URL completo ad esso. Mi rendo conto del beneficio di .one ('qualcosa', 'qualcheparam'), ma il mio problema è che ho passato varie stringhe di URL, e davvero non voglio doverle dividere() solo per usare Restangular.Utilizzo di un URL completo con Restangular

Inoltre, conosco la funzione baseURL; ma questi URL che sto passando non derivano necessariamente dallo stesso percorso di base.

Per esempio, potrei avere:

/us/en/product/17726 
/us/es/products 
/us/es/product/991A0 
/ca/en/accounts 

Tutto quello che sto dato sono le stringhe ...

risposta

14

Sono il creatore di Restangular.

Hai 2 opzioni per farlo.

1) Creazione di scope Restangulars con differenti BaseURLs in ogni caso: https://github.com/mgonto/restangular#how-to-create-a-restangular-service-with-a-different-configuration-from-the-global-one

2) Si può usare come Restangular.all('us/en/').one('products', 1726) o Restangular.one('us/en/product', 1234)

auguro che funziona per voi :)

+0

Questo è quello che mi serviva. Ho provato ad aggiungere l'URL completo come Restangular.all ('/ us/en') e mi ha colpito. Deve essere stato il primo taglio. – cazzaran

+1

Pensa che sarebbe utile aggiungere una funzionalità che consentirebbe a qualcuno di fare una richiesta una tantum data una stringa URL in modo che non debbano elaborarla o creare più istanze con scope? Uno dei vantaggi di questa risorsa oltre $ è che non sono richieste istanze multiple per una singola richiesta ... – cazzaran

+0

Ehi, non penso quanto sarebbe utile. Usarlo come è ora è abbastanza simile come puoi vedere perché puoi usarlo anche con gli URL :). – mgonto

11

avevo bisogno di semplicemente GET un url assoluto e si imbattè in questa domanda.

Ecco come:

Restangular.oneUrl('routeName', 'http://absolute.url').get();

restangular#restangular-methods

+1

Cosa fa 'routeName' qui? –

+0

@AlirezaMirian Non ho la fonte che stava usando questo a portata di mano, ma se ricordo correttamente 'routeName' agisce essenzialmente come GUID per le rotte Restangular. L'oggetto che viene restituito da 'Restangular.oneUrl()' non ha bisogno di sapere di 'routeName'. Non sono sicuro di come vengono gestiti i conflitti 'routeName' ... – slamborne

+0

Attenzione: in questo modulo l'elemento Restangular restituito ha una route non valida, quindi put() e post() non funzioneranno – itghisi