3

我在用户设置配置文件表单中使用 Backbone。我获取模型并将其信息呈现到表单中。当我保存模型时,所有参数都被发送,而不是用户更改的参数。

首先,我获取模式并将其呈现在视图上:

// Fetch model and render on view
user = new User({ id: 123 });
user.fetch().done(function () {
    view.render();
});

当用户更改字段时,我使用“set()”方法更新了模型:

"change .email": function () {
    this.model.set("email", this.email.val());
}

稍后在视图代码中,我保存了一个点击事件(使用patch: true):

"click .save": function () {
    console.log(this.model.changedAttributes());  // Shows all the model attributes
    this.model.save({ patch: true }); // Sends all the model attributes
 }

fetch在我用来初始化模型后,如何避免 Backbone 标记为已更改?

4

1 回答 1

1

这个黑客将解决您的问题:

model.fetch({context:model}).done(function () {
  this.set({});
  view.render();
});
于 2013-01-23T18:02:35.363 回答