我尝试实现的目标:用户进入发布/ 3 /编辑。这里的表单绑定到模型,因此它已经填写完毕。在顶部
You are editing the post {{model.title}}
如果用户更改了标题,则会更改为动态。我不想要这种行为。如果用户已经点击“保存”按钮(并且一切都在服务器端正确),我想将更改应用于记录。
我的想法:
问题
record.clone()
的内容,它会将记录与其关系进行深层复制?originalRecord.apply(clonedRecord)
?答案 0 :(得分:0)
假设您使用的是Ember数据:
更简单的方法可能是在帖子编辑路线中使用setupController
挂钩:
// routes/posts/edit.js
export default Ember.Route.extend({
setupController: function (controller, model) {
this._super(controller, model);
this.controller.set('staticTitle', model.get('title'));
}
});
然后在你的模板中:
{{staticTitle}}
然后当您提交表单时,请在成功保存后将静态标题重置为新值:
// controllers/posts/edit.js
.
.
.
actions: {
savePost: function() {
var controller = this;
var post = this.get('model');
function onSuccess(savedPost) {
controller.set('staticTitle', savedPost.get('title');
//transition somewhere
}
function onFailure() {
post.rollback()
}
post.save().then(onSuccess, onFailure);
}
}