2013-08-01 20 views
10

Podobają mi się wszystkie funkcje Restangular for AngularJS, z tym wyjątkiem, że nie mogę znaleźć (i może nie obsługiwać) sposobu przekazania do niego pełnego adresu URL. Zdaję sobie sprawę z korzyści płynących z .one ("coś", "someparam"), ale moim problemem jest to, że mam różne ciągi adresów URL i naprawdę nie chcę ich rozdzielać() tylko po to, aby korzystać z Restangular.Używanie pełnego adresu URL z prostokątnym

Ponadto wiem o funkcji baseURL; ale te adresy URL, które otrzymuję, niekoniecznie pochodzą z tej samej ścieżki bazowej.

Na przykład mam:

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

Wszystko mam podane są za sznurki ...

Odpowiedz

14

jestem twórcą Restangular.

Masz 2 opcje, aby to zrobić.

1) Tworzenie scoped Restangulars z różnych BaseURLs w każdym przypadku: https://github.com/mgonto/restangular#how-to-create-a-restangular-service-with-a-different-configuration-from-the-global-one

2) można go używać jak Restangular.all('us/en/').one('products', 1726) lub Restangular.one('us/en/product', 1234)

Nadzieję, że pracuje dla Ciebie :)

+0

To co było mi potrzebne. Próbowałem dodać pełny adres URL, taki jak Restangular.all ("/ us/en"), i to mnie dopadło. To musiało być to wiodące cięcie. – cazzaran

+1

Czy uważasz, że warto byłoby dodać funkcję, która umożliwiłaby komuś złożenie jednorazowej prośby z użyciem adresu URL, aby nie musiała go przetwarzać lub tworzyć instancji o wielu zakresach? Jedną z zalet tego ponad $ zasobu jest to, że wiele instancji nie jest wymaganych dla pojedynczego żądania ... – cazzaran

+0

Hej, nie sądzę, ile by to było pomocne. Używanie go tak, jak jest teraz jest całkiem podobne, jak widać, ponieważ możesz go użyć również z adresami URL :). – mgonto

11

Musiałam po prostu GET absolutny URL i natknąłem się na to pytanie.

Oto jak:

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

restangular#restangular-methods

+1

Co robi tutaj "routeName"? –

+0

@AlirezaMirian Nie mam źródła, które używało tego na wyciągnięcie ręki, ale jeśli dobrze pamiętam, 'routeName' zasadniczo działa jako GUID dla tras o profilu prostokątnym. Obiekt zwracany z 'Restangular.oneUrl()' nie musi wiedzieć o 'routeName'. Nie wiesz, jak rozwiązywane są konflikty 'routeName' ... – slamborne

+0

Uwaga: w tej formie zwracany element Restangular ma nieprawidłową trasę, więc funkcja put() i post() nie będzie działać. – itghisi

Powiązane problemy