2013-01-14 12 views
10

Obecnie łączę tradycyjną aplikację z częściami dynamicznymi napisanymi przy użyciu AngularJS. Chciałbym podać pewną konfigurację z mojego serwera do mojego modułu. W tym przypadku chciałbym skonfigurować "podstawowy" adres URL aplikacji. Wszystkie szablony można znaleźć w określonej lokalizacji, a ta lokalizacja jest określona przez serwer.Jak zapewnić konfigurację modułu AngularJS?

Więc próbowałem coś takiego:

angularForm.config(
function($routeProvider, TemplateLocator) { 
    $routeProvider.when('/', { 
     controller : TestController, 
     templateUrl : TemplateLocator.getTemplate('FormOuterContainer') 
}); 
}); 

Na serwerze:

<script type="text/javascript"> 
angular.module('BoekingsModule.config', []).provider('TemplateLocator', function() { 
     this.$get = function() { 
      return // something 
     } 

     this.getTemplate = function(name) { return 'location...'; } 
    }); 
</script> 

Jednak nie jestem pewien, że to właściwa droga. W skrócie: Jak mogę zapewnić (zewnętrzną) konfigurację modułu bez konieczności zmiany samego modułu?

+0

Utykany z tym samym problemem. Czy byłeś w stanie to rozgryźć? –

Odpowiedz

0

Wow, już dawno temu. Całkowicie zapomniałem o tym poście.

W końcu zdecydowałem, że lepiej zastosować inne podejście. Jak powiedział Iwein, połączenie SPA z renderowaniem po stronie serwera sprawia, że ​​aplikacja jest dużo bardziej złożona. W związku z tym wyodrębniłem część SPA do oddzielnej aplikacji, do której odsyła się (w moim przypadku) JSP.

Gdy mój moduł wymaga dodatkowej konfiguracji, pobiera go za pomocą interfejsu API REST. W ten sposób część SPA aplikacji jest całkowicie oddzielona od części renderowanej po stronie serwera.

4

Istnieje kilka rzeczy, które możesz zrobić

  1. Render lokalizacji na js na serwerze.

    Pro: mniej zapytań -> lepsza wydajność (zazwyczaj)

    Wady:

    • łącząc stronie serwera renderowania z OSO czyni system bardziej złożony, co prowadzi do wyższych kosztów utrzymania.
    • Trudniej jest właściwie skompresować pliki js, jeśli chcesz mieszać w renderowaniu po stronie serwera, osadzanie js w html jest również brzydkie.
  2. Wyodrębnij położenie szablonu do service.

    Z tej usługi można użyć $resource do pobrania danych z serwera w formacie json. Ułatwia to działanie, ale może również zwiększyć obciążenie serwera WWW.

Powiązane problemy