Вложенные компоненты Angular 1.5

#javascript #angularjs

#javascript #angularjs

Вопрос:

У меня есть компонент контейнера, в который вложены 2 других контроллера. Я настроил их следующим образом container -> component1 и container -> component2

Моя мысль здесь заключалась в том, что я мог бы преобразовать HTML со своей страницы в свой контейнерный компонент. <container> <component1></component1> <component2></component2></container>

а затем в контейнере HTML <div ng-init="vm.init()" ng-transclude></div>

Проблема в том, что мой контейнер вообще не запущен, я добавил журнал консоли в его функцию инициализации, и код не выполняется. В то время как component1 и component2 запускают свои инициализации.

Похоже, существует большое количество документации, охватывающей более старые версии angular. Которые говорят мне, что они должны быть вложены следующим образом <div ng-controller="parentController"> <div ng-controller="childController"></div> </div

Как вы вкладываете компоненты друг в друга в 1.5?

Комментарии:

1. Руководство по компонентам на angularjs.org содержит примеры вложенных компонентов, и здесь, на SO, есть много вопросов о вложенных компонентах (см. Соответствующую боковую панель). Прямо сейчас этот вопрос довольно широкий и, похоже, требует руководства, а не конкретного ответа на конкретную проблему…

2. очень полезно…

Ответ №1:

Похоже, проблема заключалась в том, что я пытался поместить ng-init и ng-transclude в один и тот же элемент. Я предполагаю, что ng-transclude переопределяет все в элементе, на котором он находится.

итак, я переместил ng-init в другой элемент, и он работает нормально

<div ng-transclude ng-init="vm.init()"></div>

изменено на

<div ng-init="vm.init()"> <section ng-transclude ></section> </div>