主干集合url未定义

Backbone collection url not defined

本文关键字:未定义 url 集合      更新时间:2023-09-26

我有以下主干代码,它应该创建一个模型集合,并在其中创建一个新的模型实例,并将其保存在服务器上。

var Project = Backbone.Model.extend({});
var Projects = Backbone.Collection.extend({
    model: Project,
    url: "/api/projects"
});
var projects = new Projects();
projects.add({
    "title": "My Project"
}).sync();

但是,当运行这个时,我得到以下错误;

A "url" property or function must be specified

我认为模型将按照文档从集合继承url属性。为什么不呢?怎么了?

JSFiddle: http://jsfiddle.net/6L8v4dj8/

根据我在文档中看到的,你应该调用

projects.sync('create', projects.models[0]) http://backbonejs.org/#Sync

在这种情况下,您可以使用create方法,例如:

var Project = Backbone.Model.extend({});
var Projects = Backbone.Collection.extend({
    model: Project,
    url: "/api/projects"
});
var projects = new Projects();
projects.create({
    title: "My Project"
});

创建模型将导致立即在集合上触发"添加"事件,当新模型被发送到服务器时触发"请求"事件,以及一旦服务器响应成功创建模型时触发"同步"事件。

文档