2017-01-23 26 views
0

私はangular2を学習していて、ページにテキストボックスがあるシナリオを実装しようとしています。 テキストボックスに値を入力するたびに、テキストをキャンセル/削除して右に表示し、テキストボックスの入力値をクリアする必要があります。 私のHTML-Angular2 - 表示テキストボックスに入力した値のテキストを削除/キャンセルし、テキストの削除/キャンセルをクリックして入力フィールドをクリアします。

<md-input #productName name="productName" (keydown)="handleKeyDown($event)" type="text" placeholder="Start typing to select product types"></md-input> 

では、私は追加して、テキストを入力すると、クロスアイコンで取り消しテキストを表示する方法を把握することはできませんよ。 これを実現するためにhandleKeyDown関数を調整する方法を教えてもらえますか?

答えて

2

この要素を表示/非表示にするには*ngIfを使用する必要があります。入力をクリアするにはngModelを使用できます。

@Component({ 
    selector: 'my-app', 
    template: ` 
    <div> 
     <h2>Hello {{name}}</h2> 
     <br /> 

     <input [(ngModel)]="name" /> 
     <button *ngIf="name" (click)="name = ''">clear</button> 
    </div> 
    `, 
}) 
export class App { 
    name:string; 
    constructor() { } 
} 

ライブデモ:https://plnkr.co/edit/oXl4LEJK3sEc5HxXAaxe?p=preview

+0

私はこのような何かを試してみました。ここでの問題は、クリアテキストは、値を入力する前でも表示されていることです。私はテキストボックスに何かを入力したときに表示するテキストをクリアするが、それは起こっていない。代わりに、* ngIf = "!name.pristine"を使ってテキストを表示しようとしましたが、それは動作していません。 –

+0

私はあなたの本当の問題を理解できません。あなたがそれを再現するために最小のプランカを作成するならば、素晴らしいでしょう。 – mxii

+0

例では、テキストボックスの既定値は 'Angular2'に設定されています。私の場合、デフォルト値は設定されていませんが、キャンセルテキストはDOMに存在します。私はこのキャンセル/クリアテキストをtextbox.Letに値を入力したときにのみ表示したいのですが、これがまだ明確でない場合は、plunkerを追加します。 –

関連する問題