Окончательное редактирование: рабочий планкер с включенной директивой.
Изменить: я сделал первый планкер с данным решением в первом ответе. Это работает, но это нежелательное поведение, потому что шаблон содержит все партиалы.
Я сделал второй планкер с тем, чего я надеюсь достичь (но это не работает , очевидно). Я думаю, это в основном потому, что шаблон не является родителем партиала, а содержится в нем, поэтому ui-router не очень хорошо понимает, что я хочу.
Любая помощь в этом будет принята с благодарностью!
Мы создаем веб-сайт с использованием Angular Material и UI-маршрутизатора, и все наши страницы с контентом используют один и тот же «контейнер», потому что мы всегда хотим одинакового отзывчивого поведения.
Код этого универсального контейнера будет примерно таким:
<div class="layout-content">
<div layout="column" layout-align="center">
<div layout="row" layout-align="center center">
<section class="layout-fixed-width md-whiteframe-z1" flex-sm="100" flex-gt-sm="90">
{{content placed here}}
</section>
</div>
</div>
</div>
Заголовок может отличаться на всех страницах, поэтому структура, которая у нас будет, в основном будет такой:
Вопрос в том, как этого добиться в ui-router? Мы сделали несколько вложенных представлений, но я не вижу, как сделать общий шаблон, чтобы код мог выглядеть примерно так:
<form>
<md-toolbar/>
<div ui-view="generic-template">
<div ui-view="my-content"></div>
</div>
</form>
В идеале мы хотели бы определить представление универсального шаблона только один раз и использовать его во всех наших модулях.
В документация по вложенным состояниям и вложенным представлениям Я вижу в основном вложенные состояния, но на самом деле нам нужен простой HTML-шаблон, поэтому, возможно, мы слишком усложняем его, и возможен более простой способ (я совершенно уверен, что это так). Я также проверил эту проблему, где один из ответов говорит, что ui -маршрутизатор должен быть решением, но не более того.
Может быть, мы должны вместо этого сделать директиву?