2016-09-30 7 views
0

Ich habe eine Container-Komponente, die 2 andere Controller darin verschachtelt hat. Ich habe sie aufgebaut wie so container -> component1 und container -> component2Angular 1.5 Nesting-Komponenten

Mein Gedankengang hier war, dass ich den HTML-Code von meiner Seite in meine Container-Komponente transcluden. <container> <component1></component1> <component2></component2></container>

und dann in den Behältern HTML <div ng-init="vm.init()" ng-transclude></div>

Problem ist, ist mein Behälter nicht läuft, habe ich ein Konsolenprotokoll auf seine init-Funktion und kein Code ausgeführt wird. Während component1 und component2 ihre Inits ausführen.

Es scheint eine große Menge an Dokumentation über ältere Winkelversionen zu sein. Welche sagen mir, dass sie so verschachtelt werden müssen <div ng-controller="parentController"> <div ng-controller="childController"></div> </div

Wie verschachteln Sie Komponenten in 1.5?

+0

Die [Component Guide] (https: //docs.angularjs .org/guide/component) over auf angularjs.org hat Beispiele für Verschachtelungskomponenten, und es gibt viele Fragen zu verschachtelten Komponenten hier auf SO (siehe Verwandte Seitenleiste). Gerade jetzt ist diese Frage ziemlich breit und scheint nach einem Tutorial anstatt einer spezifischen Antwort auf ein bestimmtes Problem zu fragen ... –

+0

sehr hilfreich ... –

Antwort

0

Sieht aus wie das Problem war, dass ich versuchte, ein ng-init und ng-transclude in das gleiche Element zu setzen. Meine Annahme ist, dass ng-transclude alles in dem Element außer Kraft setzt, auf dem es sich befindet.

so zog ich die ng-init zu einem anderen Element und seine adaequat

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

geändert

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