2017-04-02 1 views
3

Ich möchte die Bezeichnung durch Eingabetextbox ersetzen und umgekehrt, indem ich in Angular 2 auf eine Schaltfläche klicke. Ich weiß, dass ich etwas anderes verwenden muss, aber ich bin etwas verwirrt .Angular 2 - Klicken Sie hier, um die Formularfelder zu bearbeiten

HTML:

<form> 
<div class="information"> 
    <label *ngIf="editMode">{{textValue}}</label> 
    <input *ngIf="editMode" [ngModel]="name"> 
    <button (click)="editMode=true">Edit</button> 
    <button (click)="editMode=false">Save</button> 
</div> 
</form> 
+0

Das sieht gut aus, wie ist die aktuelle Situation? –

+0

Ersetzen durch was? –

+0

Was ich will, ist die Antwort auf diese Frage. http://StackOverflow.com/Questions/37404746/Replacing-Label-with-input-textbox-and-vice-versa-by-clicking-a-button-in-angula Aber das ist Winkel 1 und ich verwende angular 2 und ng-show und ng-hide ist nicht Teil von angular 2 – pPeter

Antwort

1

Das einzige, was Sie zu einem Ihrer *ngIf ‚s hinzufügen müssen, ist Ausrufezeichen:

<label *ngIf="!editMode">{{textValue}}</label> 

was bedeutet, dass Etikett angezeigt wird, wenn editMode falsch ist. Das Ausrufezeichen ist der NOT-Operator, der als Wahrheitstest für eine Variable verwendet wird. Mehr hier: What does an exclamation mark before a variable mean in JavaScript

+0

Ich habe das versucht, und das gab mir: https://plnkr.co/edit/B6o0yydz0iUEVSKKjY4c?p=preview Was ich will, ist das ändern Wenn Sie die Edit-Taste drücken, benennen Sie das Label in ein Eingabefeld. – pPeter

+0

Nun, Sie benutzen 'ng-show' und' ng-hide'. Sie sollen * ngIf verwenden, wie Sie in Ihrer Frage haben :) – Alex

+0

@VarunBalachanthiran das ist kein gültiger Plünderer, hier ist ein Plünderer dessen, was AJT_82 bedeutet: https://plnr.co/edit/U1poqbiD8uLmk4Bw8AOM – echonax

Verwandte Themen