ember 2.10アプリケーションの作成に関するチュートリアルに従っています。私は、私の連絡先コントローラから私の検証ロジックを移動し、私の連絡先モデルの中に配置しました。私は自分の行動(saveContact)を連絡先ファイルに配置しました。 新しい連絡先をエラーなくFirebaseデータベースに保存できます。私は私のフォームをクリアする方法に立ち往生しています。Ember 2.10のフォームフィールドのクリア
マイ接触ルート・ファイルは、私は、フォームの現在の値を取得し、空の文字列へのメッセージと電子メールの両方を設定しようとしている
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.createRecord('contact');
},
actions: {
saveContact(newContact) {
newContact.save().then((response) => {
const email = this.get('model.email');
const message = this.get('model.message')
this.set('email', '');
this.set('message', '');
})
}
}
});
のように見えます。
私はテストを実行してコンソールにログを記録し、コンソールは未定義に戻ります。
入力フィールドでは、渡される値はmodel.emailとmodel.messageです。
他に誰かがこの問題を抱えていますか?このルート上でモデルをリフレッシュするために
'this.set( 'model.email'、 ''); this.set( 'model.message'、 ''); 'または単にthis.refresh()にモデルフックを呼び出すと、新しいフレッシュコンタクトモデルが得られます。 – kumkanillam
ありがとうございます。 this.refresh()は機能しました。 this.set( 'model.email、' ')とthis.set(' model.message '、' ')私が最初に試したこと。私はフォームの値を提出することができますが、ページはリセットせずに凍ってしまいました。 –
モデル関数に新しいレコードを作成するのは少し奇妙です。ストア内のレコードを(保存せずに)作成することは、非同期処理ではありません。だからモデルだけでなく、どこでもそれを行うことができます。 'model()'フックの目的は、api/database/fileから何かをロードすることです。私はあなたの場合、連絡フォームのコンポーネントを持っている必要があり、連絡フォームのロジック全体を実装する必要があると思います。このコンポーネントを既にお持ちの場合は、貼り付けることができます。コードを改善するために何ができるかを見ていきます。 –