2017-07-28 7 views
0

Ich bin neu in Angular 4, Anprobieren dynamisch li Inhalt $() mit anhängen anhängen() Methoden.. Ich bin nicht in der Lage zu kompilieren und zu verwenden [ngClass] Direktive.Angular 4 - Kompilieren [ngClass] innerhalb jquery append

jQuery betrachtet es als String und hängt an DOM an. Ich möchte es dynamisch kompilieren, die als eine eckige 4-Anweisung ausführen.

Array mit Dummy-Daten ist unten.

let listOfAllColumns = [ 
     { name: "name", active: false }, 
     { name: "ConnectionType", active: true }, 
     { name: "Type", active: false }, 
    ]; 

Looping obwohl Array mit jQuery

 listOfAllColumns.forEach(item => { 
     $(this.sortElement).append("<li><a href= 'javascript:;' [ngClass]='{'activeTick': "+ item.active +"}'>"+ item.name +"</a></li>"); 
    }); 

Mein DOM Inhalt:

<a href="javascript:;" [ngClass]="{" activetick':="" false}'="">name</a> 

[ngClass] als String betrachtet ist es eine Möglichkeit, diese Aussage in Winkel zu kompilieren .. !!!

Vielen Dank im Voraus

+0

wie diese [ngClass] =“versuchen machen {'activetick': item.active} " – Sreemat

+0

Ich möchte es aus einer ts-Datei [Komponentendatei] laden. tats mein Szenario. – user1688992

Antwort

1

Erster Platz, warum würden Sie Vorlage mit jQuery machen möchten. Sie können tun es in Angular Weise leicht durch listOfAllColumns über Sammlung Looping und ähnliche Vorlagen collection.length mal

Klasse

listOfAllColumns = [ 
    { name: "name", active: false }, 
    { name: "ConnectionType", active: true }, 
    { name: "Type", active: false }, 
]; 

Html

<ul> 
    <li *ngFor="let item in listOfAllColumns" 
     [ngClass]="{'activeTick': item.active }"> 
     {{item.name}} 
    </li> 
<ul> 
+0

Grund, warum ich versuche, mit jQuery zu tun ist, habe ich Element Ref einer Komponente zu anderen Komponente freigegeben. Es wird versucht, den Inhalt des Elements ref von einer anderen Komponente wch zu laden. und Inhalt wird von der gemeinsamen Komponente sein. oder gibt es eine andere Möglichkeit, TIZ zu erreichen. – user1688992

+0

Sie können 'shared-service' verwenden, um Daten für eine Komponente freizugeben, und basierend auf demselben' listOfAllColumns' wird der Spaltenwert gefüllt und '* ngFor' wird seine Arbeit am Frontend erledigen –