#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>