1

次のように、Angular2 アプリで primeNg ダイアログを使用しています。

<p-dialog 
    header="Dialog" 
    [(visible)]="display"
    [modal]=true
    [closable]=true
    [resizable]=false
    [width]=500
    >
        <input type="text"/>
    </p-dialog>

ここで、次のことを行うとします。

  • ダイアログを起動
  • ダイアログLed Zeppelinに入力
  • ダイアログを閉じる
  • ダイアログを再度開く

これで、入力にはまだ が入力されていLed Zeppelinます。

入力の同じインスタンスが使用されていることは理解していますが、これは私が望む動作ではありません。ダイアログが起動されるたびに新しい入力を使用するようにしたいと思います。これを行う正しい方法は何ですか?これにアプローチする 1 つの方法は、 を使用しonBeforeShowて入力をリセットすることです。

4

1 に答える 1

1

特定のライフサイクル フックにアタッチする必要はありません。ダイアログを表示するためにボタンを使用していると仮定します。そのボタンには、次のjavascriptようなメソッドまたは文を添付できます。

<button pButton type="button" (click)="newName='';displayDialog();"></button>

入力は次のようになります。

<input id="myId" type="text" pInputText [(ngModel)]="newName"/>

ダイアログを表示する前に消去するnewName=''タイプの変数はどこで、ディレクティブです:リンクstringpInputTextprimeng

ボタンを使用してダイアログをトリガーしていなくても、アイデアは得られたと思います。

于 2016-06-26T20:08:26.557 に答える