我有一个简单的表单(包含一些绑定(bind)到模型的文本字段和复选框),它可以使用 jQuery 的 slipToggle 来显示或隐藏。
此表单有两个按钮:保存和取消。
基本上,当我需要对模型进行一些更改时,此表单就会变得可见。单击“保存”按钮时,我保存模型
this.get('model.content').save();
并隐藏表单。
取消也是如此。我尝试打电话
this.get('model.content').rollback();
但它不会恢复文本字段,也不会重置复选框。我希望下次打开表单时它们处于之前的“未保存”状态。我该怎么做?
最佳答案
在您的 Ember 2.10 组件中,添加:
willDestroyElement() {
this._super(...arguments);
this.get('model').rollbackAttributes();
}
这将在从 DOM 中删除表单组件之前重置模型未保存的更改。当用户离开表单而不保存时,这尤其有用。然后,您将希望阻止所做的更改通过您的应用程序传播。这假设您将模型属性传递到输入字段中,如下所示:
{{input value=model.name}}
http://emberjs.com/api/data/classes/DS.Model.html#method_rollback http://emberjs.com/api/classes/Ember.Component.html#method_willDestroy
关于javascript - Ember 模型回滚将 View 重置为之前的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22335533/