2016-12-30 68 views
1

我正在關注構建一個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。

有沒有其他人被困在這個問題上?

+1

嘗試'this.set('model.email',''); this.set('model.message','');'或者你可以直接調用'this.refresh()'它會調用模型鉤子,你將得到新的新的接觸模型。 – kumkanillam

+0

謝謝。 this.refresh()工作。 this.set('model.email,'')和this.set('model.message','')我嘗試的第一件事。我可以提交表單值,但頁面只是凍結而不需要重新設置。 –

+0

在模型函數中創建新記錄有點奇怪。在商店中創建記錄(不保存)不是異步過程。所以你可以在任何地方做到這一點,不僅在模型中。 'model()'hook的意圖是從api/database/file加載一些東西。我認爲在你的情況下,你應該有聯繫表單組件,並且應該實現整個聯繫表單邏輯。如果你已經有了這個組件,你可以粘貼它,我會看到可以做些什麼來改進代碼。 –

回答

0

要刷新此路線模型嘗試調用

this.refresh() 

這將觸發beforeModelmodel,並afterModel鉤子,這樣你會得到新的接觸模型。 Reference