Jest przypadek użycia, który jest dość popularny w budowaniu międzynarodowej aplikację internetową:Jak uzyskać zlokalizowane szablony (templateUrl) w routingu z angularjs
istnieją zlokalizowane szablony dla każdej kultury, o nazwie konwencji jak „en_US/nazwa .html ',' ru_RU/name.html 'itd.
Ustawienia regionalne użytkownika mogą być dostępne tylko po zalogowaniu użytkownika (lub użytkownik może wybrać ustawienia regionalne).
Najlepszą opcją, jaką znalazłem, jest podanie wartości lokalizacji za pomocą DI (aby mogła być aktualizowana w dowolnym miejscu - lub gdy otrzymam odpowiedź z backendu z konfiguracją użytkownika lub gdy użytkownik coś wybierze).
Ale routing może być skonfigurowany tylko w kroku konfiguracji, w którym "wartości" nie mogły zostać wstrzyknięte. Tak więc nie można wstrzyknąć konfiguracji locale i dodać templateUrl zgodnie z tą wartością.
Oto zobrazowanie mojego rozwiązania w postaci Plnkr example.
Jedynym innym rozwiązaniem, które widzę, jest modyfikowanie prywatnych tablic tras (za pomocą $ route.routes []), ale brzmi to jak brzydkie hackowanie.
Czy istnieją inne rozwiązania umożliwiające wdrożenie tego powszechnego przypadku użycia zlokalizowanych szablonów?
W rzeczywistości wszystkie kopie szablonów w moim projekcie są generowane w backendach przy użyciu domyślnego podejścia do internacjonalizacji maszyn Razor. Tak więc w rzeczywistości mam jeden szablon z treściami takimi jak '