2017-09-06 3 views
0

Hallo hinzufügen ich einig jQuery-Code in meine Winkeln 2 projet hinzufügen möge dynamisch Eingabetextfeld hinzuzufügen, seine Arbeit, aber die removeTextField tut ausführen, wenn ich darauf klicke heren dem Code:Ausgabe, wie jQuery in Winkel 2 Projekt

addTextField(){ 
var newTextBoxDiv = $(document.createElement('div')) 
    .attr("id", 'TextBoxDiv' + this.counter); 

newTextBoxDiv.after().html('<label>Textbox #'+ this.counter + ' : </label>' + 
     '<input type="text" name="textbox' + this.counter + 
     '" id="textbox' + this.counter + '" value="" >'+'<span (click)="removeTextField(this.counter)" class="glyphicon glyphicon-remove pull-right" style="z-index:33;cursor: pointer"> </span>'); 
newTextBoxDiv.appendTo("#TextBoxesGroup"); 
this.counter++; 

} 

removeTextField(currentTextField){ 
    alert(currentTextField); 
} 

irgendwelche Vorschläge, bitte !!!

+0

Ist dieser Code unter '' 'Dokument ready''' Funktion und dann haben Sie den Controller im Inneren, dass initialisiert? –

+0

Theres kein Controller ich verwende Winkel 2 .. –

+0

Mögliche Duplikat [Welche Version von Jquery Winkel 4 hält] (https://stackoverflow.com/questions/43400320/what-version-of-jquery-angular-4- hält) –

Antwort

0

Versuchen Sie, wie dies

Zum Beispiel, wenn Ihr Eingabetextfeld wie

<input type="text" class="my-input-field"> 

In Ihrem Controller

$(document).click("on", ".my-input-field",()=>{ 
    //capture the currentTextField using jquery 
    this.removeTextField(currentTextField); 
}) 

    removeTextField(currentTextField){ 

} 

Beispiel Es ist eine Datentabelle in Winkel 2 implementiert ist .. Die Schaltflächen zum Aktualisieren und Löschen werden im laufenden Betrieb gerendert.

HTML

<table class="datatable table table-striped table-bordered" (click)="onTableClick($event)"></table> 

-Controller

onTableClick(event){ 

    if(event.target.className.indexOf('update-row')!= -1){ //will get the class name and check if matches update button class 
    this.updateRow($(event.target).attr("data-id")) 
    } 
    if(event.target.className.indexOf('delete-row')!= -1){ //will get the class name and check if matches delete button class 
    this.deleteRow($(event.target).attr("data-id")) 
    } 
    } 
+0

gibt es Textfeld injected..das ist, warum ich inject removeTextfield auf newTextBoxDiv –

+0

remove (click) = "removeTextField" und put class = "removeTextField" und folge dem Code .. und anstelle von .my-input-field im Code, setze removeTextField, es funktioniert –

+0

ich muss einen Parameter innerhalb der Funktion übergeben ..wie meins hast du den Punkt, ich kann Klasse –