2012-12-05 10 views
11

jako użytkownik strony sieciowej po stronie serwera (korzystam z Django), podoba mi się sposób organizacji szablonów. Tytuł strony, css, js, nagłówek i stopka szablonu podstawowego są definiowane jako bloki i mogą być przesłonięte w szablonach podrzędnych.Templowanie w angular.js - dziedziczenie

Co to jest sposób kanciasty?

Zawartość każdej strony jest oczywiście dostarczana przez ng-view, poza tym, nie mogę wiele zrobić. Tag title na przykład znajduje się poza widokiem i nie mogę go zmieniać dynamicznie.

Dobrze byłoby podać przykładowy kod projektu na pełną skalę, aby zobaczyć, jak szablony są zorganizowane. Większość przykładowych projektów jest małych i nie wymaga dziedziczenia w szablonach.

Odpowiedz

6

Szablony szablonów Django są naprawdę ładne, ale pamiętaj, że Angular jest przeznaczony przede wszystkim do budowania obiektów SPA (aplikacje na jednej stronie), więc koncepcyjnie jest inny. W typowym projekcie Angular, Twój framework po stronie serwera generuje szablon podstawowy, a następnie routing jest przekazywany do Angular dla wszystkich innych elementów, a sekcje z zawartością są warunkowo uwzględniane na podstawie tras.

Jedną z części podobieństwa między szablonami Django i Angular jest dyrektywa ng-include, która umożliwia zasysanie bitów wielokrotnego użytku html. Ale nie ma nic podobnego do systemu Django {{block}} lub {{block super}}.

Można napisać niestandardową dyrektywę, aby wprowadzić dodatkowe css/javascript, zamiast używać {{dodatkowego bloku}}.

W przypadku dynamicznych tagów tytułowych należy się upewnić, że element kontrolera jest ustawiony nad elementem głównym, w przeciwnym razie będzie poza zakresem, a tym samym będzie niedostępny. Robimy to w ten sposób w szablonie bazowym:

<title data-ng-bind="title">Oursite</title> 

I wtedy w sterowniku dla tego adresu URL:

$rootScope.title = 'Dashboard | Oursite'; 

Inne proponowane podejścia w this wątku.

4

Spójrz na angular-blocks inspirowany Jadeitem, kierownicą i Django lub prostszym ng-layout.

+0

Próbowałem używać blokad kątowych, walczyłem przez godzinę, ale nie działałem, czy możesz mi pomóc? –