如何在Backbone.js中通过id更新模型?

时间:2013-09-07 20:23:17

标签: backbone.js

我尝试过骨干教程中的简单示例,无法实现这一点

var Person = Backbone.Model.extend({});

var People = Backbone.Collection.extend({
    model: Person,
    url: "http://localhost:3002/people"
});

var people = new People();

var person = new Person({
    id: 3
});

person.fetch({
    success: function () {
        person.set({age: 23});
        person.save();
    }
});

我只想更新id等于3的现有记录但是出现错误必须指定“url”属性或函数。我确信在键入此示例时我没有犯错,但它在教程中有效,对我不起作用。是因为某些版本更改?

1 个答案:

答案 0 :(得分:0)

正如错误和评论所示,您需要为模型指定url属性,或者将person模型添加到people集合。

如果您希望使用与fetch集合相同的urlpeople您的模型。您需要通过执行以下操作将person添加到people集合中:

var people = new People(person);

// or 

people.add(person);

// The fetch url for a person would look like
// GET http://localhost:3002/people/3       Assuming the id of the person is 3.

如果您需要使用与您的集合指定url模型不同的person。您可以在url模型中指定urlRootPerson属性。

var Person = Backbone.Model.extend({
  urlRoot:'http://localhost:3002/person'
});

// The fetch url for a person would look like
// GET http://localhost:3002/person/3       The number will match id of model.