2016-12-30 71 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