我想在创建帖子后进行转换。
post/new > 单击提交 > Rails 后端成功创建帖子并响应 json > 重定向到新创建帖子的路径
在 ember_data_example github 源代码中。他们使用这种方法
transitionAfterSave: function() {
// when creating new records, it's necessary to wait for the record to be assigned
// an id before we can transition to its route (which depends on its id)
if (this.get('content.id')) {
this.transitionToRoute('contact', this.get('content'));
}
}.observes('content.id'),
它工作得很好,因为模型创建时模型的 ID 为 null,当模型保存成功时,它的 ID 会发生变化,因为该函数观察模型 ID 的变化。
但也许,只要模型的 ID 属性发生更改,就会执行此函数。
我正在寻找一些更具语义的方式。
我想要执行转换
当模型的状态更改为 'isDirty' = false && 'isNew' == true 形式 'isDirty' = true, 'isNew' = false。
我怎样才能实现这个?
理想情况下,id 不应更改。不过,你是对的,从语义上来说,这个方法似乎不对。
有一种更干净的方法可以做到这一点:
save: function(contact) {
contact.one('didCreate', this, function(){
this.transitionToRoute('contact', contact);
});
this.get('store').commit();
}
2013 年 11 月 27 日更新(ED 1.0 测试版):
save: function(contact) {
var self = this;
contact.save().then(function() {
self.transitionToRoute('contact', contact);
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)