テンプレートフォーム用の公式Angular2チュートリアルに従っていますが、JavaScriptの機能がAngular2 ngModelにどう対処しているのかを理解しています。公式の文書に明示的に述べられていないが、私はreset
が入力値をデフォルトに設定していると信じている。それはnull
?Angular2テンプレートフォーム - リセット関数を理解しようとしています
例では、我々はnewHero
機能を持っているので、だから、そうです:
newHero() {
this.model = new Hero(42, '', '');
}
、我々は、フォームの "リセット" は、この関数が呼び出される:
<button type="button" class="btn btn-default" (click)="newHero(); heroForm.reset()">
New Hero (official)
</button>
注newHero
こと関数name
とpower
を空の文字列に設定します。しかし、この関数の実行後以来、私たちは同様heroForm.reset()
をフォームをリセット、次のように新しいオブジェクトは次のとおりです。
{ "id": 42, "name": null, "power": null, "alterEgo": null }
これは面白いです、そうではありませんか? null
は空の文字列(Difference between null and empty string)には等しくないので、これは間違っていると主張することができます。しかし、それは公式のAngular2のドキュメントにあるので、わかりません - 私はこの権利を得ていませんか?
私は物事がこれに呼び出される順序変更:新しいのデフォルト値が存在することになる場合{ "id": 42, "name": "", "power": "" }
今想像:これは実際に正しいオブジェクトを生成
<button type="button" class="btn btn-default" (click)="heroForm.reset(); newHero()">
New Hero (alt)
</button>
をオブジェクトの場合、name
がJessica Alba
に変更されたとします。 Angularの公式の例では、この値がnullに上書きされるため、モデルをリセットする機能があるのはなぜですか?
ここでリセット用2つのボタン、公式および代替1(上部のmodel
JSONに注意してください)と、プロジェクトの:https://plnkr.co/edit/1w2SSv8qxpOCjfDaJxPz?p=preview
は、だから私の質問は次のとおりです。間違ったドキュメントの例である、または私が行方不明です何か? reset
関数は実際に値をnull
に変更しますか?
私はあなたが上のチュートリアルを考えていると思います。目的は、角度2で作業を始めるのを手助けすることです。フレームワークに慣れていれば、必要に応じてオブジェクトを設定できます。例えば、新しいオブジェクトにIDを割り当てるのは意味がありません。なぜならそれは一般的にバックエンドなので、データを保存する前にそれをチェックすることになります...あなたの質問に答えるために、リセット関数はあなたが望むものを割り当てますデフォルト値(null、空文字列、定義済みヒーローパワーなど)になるようにしてください。 – mickdev
私はあなたに同意します。私はここでニックピッキングしていますが、これを表現する方法では、newHero関数は意味をなさない。そこに何を置くかにかかわらず、それは無効になります。私は順序を変更することが理にかなっていると思います(最初にフォームをリセットしてから、関数を呼び出してください)。私はこれがいくつかの混乱を引き起こすことが想像することができます。例えば私を見て! – uglycode