Ich versuche, eine Angular-Komponente zu erstellen und den inneren HTML-Code der Komponente zu transponieren, aber das Markup des inneren HTML scheint nicht zu kompilieren. Mein Anwendungsfall dafür ist, dass die Komponente eine Attributbindung hat, die ich auf verschiedene Arten verwenden möchte, so dass die Vorlage niemals genau gleich ist.Eckige Komponente mit durchscheinendem Markup
Zum Beispiel sagen, dass ich die folgenden einfachen Controller habe:
class ComponentCtrl {
$onInit() {
this.variable = 'hello world';
}
}
let MyComponent = {
controller: ComponentCtrl
};
app.component('myComponent', MyComponent);
ich folgende HTML will:
<my-component>
<div style="color: green;">{{ $ctrl.variable }}</div>
</my-component>
<my-component>
<div style="color: red;">{{ $ctrl.variable }}</div>
</my-component>
zu machen:
<div style="color: green;">hello world</div>
<div style="color: red;">hello world</div>
jedoch jetzt es wird nur gerendert als:
<div style="color: green;"></div>
<div style="color: red;"></div>
ohne das Markup wird ausgewertet.
Gibt es etwas, was ich falsch mache?
es ist winklig 1 oder 2? – qchap
Dies ist Angular 1 (Version 1.5). – snusnu
Das, was Sie zu tun versuchen, ist derzeit mit eckigen Anweisungen oder Komponenten nicht möglich (möglicherweise wird es nie möglich sein). Leider werden die übersetzten Elemente nicht Teil des untergeordneten Bereichs des Elements, in das sie eingeschlossen werden. In diesem Fall bezieht sich "$ ctrl" immer noch auf den Controller über 'my-component', nicht' ComponentCtrl'. – Claies