gpt4 book ai didi

javascript - & 符号模型未找到其 url

转载 作者:行者123 更新时间:2023-12-03 08:15:45 25 4
gpt4 key购买 nike

我正在使用 & JS 模型。当我尝试初始化一个新的时,

z.add(this.state)
m = z.get(this.state.name)
m.sync()

或将一个添加到集合中,

m = new ZModel(this.state)
m.sync()

我收到错误必须指定“url”属性或函数

根据规范:

默认情况下,url 是通过嗅探模型的 urlRoot 或模型的集合 url(如果存在)来构建的,如果模型尚未保存,则附加 idAttribute。

这正是我想要的行为,因为我有一个可同步的 Restful API。 urlRoot 已设置,idAttribute 也已设置。

export default Model.extend({

idAttribute: 'name',

urlRoot: 'http://localhost:50000/locator/zones/',

props: {
name: 'string',
type: 'string',
},

fetch () {
Model.prototype.fetch.apply(this, arguments)
}
})

定义了一个集合,但我没有将其传递给模型,因为我无法从文档中弄清楚如何做到这一点。但据推测,只要我定义了 urlRoot 就没有必要。在这里做什么?我想我可以将集合传递给模型,或者以某种方式以编程方式定义 url?

更新:

如果我这样做:

m.save({}, {
success: function(model, response) {
console.log('Rerender now')
}.bind(this),
error: function() {
console.log('Error during model add')
}
})

我不再遇到同样的问题,但我没有收到 POST,而是收到了 2 个带有 OPTIONS 和 PUT 的请求。如果我省略空对象 {} 参数,行为不会改变。尽管规范是这样说的:

book.save();//=> 通过与 { "title": "The Rough Riders", "author": "Theodore Roosevelt"}

同步触发 POST

book.save({author: "Teddy"});//=> 通过与 { "title": "The Rough Riders", "author": "Teddy"}

同步触发 PUT

我猜文档省略了很多细节。让它发挥作用的秘诀是什么?

最佳答案

感谢来自 Ampersand gitter chat 的 rick-butleraaronmccall 的回答:

默认情况下,如果模型的 ID 属性已填充,则保存方法将PUTPOST vs PUT/PATCH 由模型默认是否有ID决定。实际逻辑来自于 &state 中的 isNew() 函数。您可以重载此函数来确定您自己的逻辑,或者在选项中手动传递您首选的方法。

如果我没有独特的 ID,我喜欢将一个名为 fetched 的属性添加到派生的 &model 的 session 中。当我从服务器获取/检索模型时,我设置了这个值。我将其用作 isNew 值,并将其用作 subview 的 waitFor 属性。

var Model = require('ampersand-model');

module.exports = Model.extend({
constructor: function(){
options || (options = {});
Model.apply(this, arguments);
this.onSync = this.onSync.bind(this);
this.on('sync', this.onSync);
},
isNew: function(){
return this.fetched;
},
session:{
fetched: ['boolean', true, false],
},
onSync: function (model, resp, options) {
if (options.xhr.method == "GET") {
this.fetched = true;
}
}
});

关于javascript - & 符号模型未找到其 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33946087/

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