0

Ich habe die folgenden Plunker, die Ui-Router und Angulars 1.6x neue Komponente-Funktion verwendet. Der Status 'userRegister' wird aktiv und initialisiert die Komponente 'userRegister'. Diese Komponente injiziert eine neue <user-register/> in die <ui-view> und injiziert dann den HTML-Inhalt des ng-template Skriptblocks, was alles gut funktioniert.Kann ein CSS-Klassenselektor auf eine Komponente angewendet werden?

Der letzte DOM endet als:

<ui-view class="ng-scope"> 
    <user-register class="ng-scope ng-isolate-scope"> 
     <h1 class="header">Create account</h1> 
    </user-register> 
</ui-view> 

Aber ich kann nicht einen Weg finden, eine CSS-Klasse Wähler auf <user-register/> Tag hinzuzufügen.

z.B. eine Klassenauswahl .example genannt Verwendung würde Ich mag folgendes erreichen: bitte

<user-register class="example ng-scope ng-isolate-scope">...<user-register/>

Irgendwelche Ideen?

+0

So etwas gibt es nicht eine CSS-Klasse. CSS hat Regelsätze, Selektoren, Klassenselektoren, Regeln und Eigenschaften (die manchmal fälschlicherweise "CSS-Klassen" genannt werden). HTML hat tatsächliche Klassen. – Quentin

+0

@Quentin: wird natürlich versuchen, auf 'Klassenselektor' zu aktualisieren –

+0

@Iamme kann nicht einfach ein Div in Ihrer Vorlage (mit Ihrer Klasse angewendet) und halten Sie alles von Ihrem Inhalt darin, um ein ähnliches Verhalten zu erreichen? – tanmay

Antwort

1

Sicher können Sie immer die Vorlage auf ein Div wickeln und die Klasse dort platzieren.

Wenn nicht wollen, es zu tun, können Sie die $element und verwenden Sie die $postLink Funktion injizieren, um die Klasse hinzuzufügen, die Sie brauchen:

.component('userRegister', { 
    templateUrl: '/views/user-register', 
    controller: function($element) { 
     this.$postLink = function() { 
     $element.addClass('example'); 
     } 
    } 
}) 

Hier ist die Arbeits Plunker:

https://plnkr.co/edit/VuWu8L9VqrgJRGnxItY2?p=preview

Abgeschlossenes DOM:

<user-register class="ng-scope ng-isolate-scope example"> 
    <h1 class="header">Create account</h1> 
</user-register> 
+0

Wissen Sie zufällig, wo eine ausführliche API-Referenz für die $ postLink-Methode und $ element steht? Ich habe auf der Angular-Site nachgesehen, kann aber nur die $ postLink-Funktion finden, die im Entwicklerhandbuch erwähnt wird. –

+0

Für alle Interessierten: '$ postLink' wird als _lifecycle hook_ bezeichnet. Einige Informationen über diesen Hook und andere können über den weiterführenden Link gefunden werden, obwohl ich noch keine vollständige Erklärung gefunden habe (bitte teile, wenn du etwas Anständiges findest): [Angular 1.5 Lifecycle Hooks von Todd] (https: // toddmotto .com/angular-1-5-lifecycle-hooks # postlink) –

Verwandte Themen