gpt4 book ai didi

Backbone.js sync() 找不到 url 属性

转载 作者:行者123 更新时间:2023-12-04 06:41:32 25 4
gpt4 key购买 nike

使用这个人为的示例代码:

var Product = Backbone.Model.extend({
idAttribute: '_id',
url: '/rest/product',
});

var Cart = Backbone.Collection.extend({
model: Product,
url: '/rest/cart',
});

p1 = new Product({name: 'Keyboard'});
p2 = new Product({name: 'Mouse'});

c = new Cart();
c.add([p1, p2]);
c.sync();

我看到 Error: A "url" property or function must be specified有大量帖子围绕着相同的错误消息,但我发现的所有帖子都是由于在此过程中没有在某处定义 url 属性或函数的结果。

我觉得好像我在某个地方错过了一个链接步骤 - 也许我隐含地依赖于 Backbone.js 实际上没有自动设置的“神奇”连接/回调/属性/属性?

最佳答案

我首先退后一步,检查您的用例和您选择的架构。您显然是在尝试将产品添加到用户的购物车中。

我看到的问题是您已将购物车设为收藏。我建议将购物车设为包含一系列产品的模型。

var ProductCollection = Backbone.Collection.extend({
model : Product
});

var Cart = Backbone.Model.extend({
url : '/rest/cart',
defaults : {
products : new ProductCollection()
}
});

使用这个新架构,您可以执行以下操作:
var c = new Cart();
c.get('products').add([p1, p2]);
c.save();

此架构的另一个好处是您可以在购物车中包含其他数据属性,例如客户 ID、购物车的创建时间等。

关于Backbone.js sync() 找不到 url 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14492226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com