W uproszczonym scenariuszu mam dwa UI-router stany i chcę dla nich różne kolory tła ciała.Różne tła dla różnych stanów UI-router
Idealnie, chciałbym w ten sposób chciał wykonać następujące czynności:
<body ng-class="background" ui-view>
</body>
a następnie w kontrolerze dla państw zestaw klas tła (które mogą mieć charakter dynamiczny, co oznacza: obliczone w kontrolerze):
Ale umieszczenie atrybutu ui-view
na ciele usuwa go. Więc muszę umieścić atrybut ui-view
na div wewnątrz ciała.
<body>
<div ui-view></div>
</body>
Jak mogę teraz kontrolować tło ciała?
Jestem świadomy różnych hacków (np. Dostęp do własności DOM klasy ciała w funkcji onEnter
UI-Router, ...), ale czy jest to dobry sposób na zrobienie tego?
Albo jest to wszystko o co pełną wysokość div[ui-view]
(co jest not trivial) i ustawienie tła na ten element do mimick jak przyłożenie background on the body takes up the full viewport?
Btw. [The Angular UI-Router title plugin] (https://github.com/nonplus/angular-ui-router-title) do aktualizacji tytułu strony robi [coś podobnego] (https://github.com/nonplus/angular -ui-router-title/blob/master/src/angular-ui-router-title.js # L6) –
To działało dla mnie! - Po prostu chcę zaznaczyć, że aby go uruchomić, musisz uruchomić '$ rootScope. $ State = $ state;' z wnętrza '.run', gdy zadeklarujesz swój moduł. Jest to wspomniane i pogrubione w pierwszym zdaniu odpowiedzi, ale nie podano żadnego przykładu. Możesz znaleźć przykładowy kod podążając za tym linkiem http://stackoverflow.com/questions/18572930/whats-the-purpose-ofting-rootscope-state-state-with-angular-ui-ui-rou, który jest również dostarczony w odpowiedzi –