gpt4 book ai didi

javascript - 多个 Backbone.js 集合选项?

转载 作者:行者123 更新时间:2023-11-28 08:22:33 25 4
gpt4 key购买 nike

简介:

在后端构建 Node.js 和 Express,我发送 res.json(details)localhost:3000/me包含用户 session 信息的路由。

这样在客户端我就可以与该特定用户一起工作,例如在客户端初始化时我编写了一些这样的代码。

var me = new MeModel();   
me.fetch({
success: function(response) {
App.data.me = me;
var messages = new MessagesCollection([], { id: response.get('user_id') });
messages.fetch({
success: function() {
App.data.messages = messages;
App.core.vent.trigger('app:start');
}
});

}
});

你看我获取了me模型并使用它来过滤 MessagesCollection 中的消息。

<小时/>

问题:

在我的MessagesCollection我传递了这样的选项。

module.exports = MessagesCollection = Backbone.Collection.extend({
initialize: function(models, options) {
this.id = options.id;
},
url: function() {
return '/api/messages/' + this.id;
},
model: MessageModel,
//url: '/api/messages'
});

这对于在使用var messages = new MessagesCollection([], { id: response.get('user_id') });时获得所需的模型非常有用

我的问题是当我在其他地方运行 window.App.data.messages.create(Message); 时这要发布到 /api/messages/:id当我想发布到常规集合时?

理论:

很明显,我想说最好的事情是重新考虑如何在 fetch 方法中过滤模型。

所以基本上为了简化这个问题,我需要根据 .fetch() 过滤集合GET...并且不对 .create() 设置任何过滤器发布

顺便说一句,我正在使用木偶,也许这能有所帮助?

最佳答案

model.url() Returns the relative URL where the model's resource would be located on the server. If your models are located somewhere else, override this method with the correct logic. Generates URLs of the form: "[collection.url]/[id]" by default, but you may override by specifying an explicit urlRoot if the model's collection shouldn't be taken into account.

Delegates to Collection#url to generate the URL, so make sure that you have it defined, or a urlRoot property, if all models of this class share a common root URL. A model with an id of 101, stored in a Backbone.Collection with a url of "/documents/7/notes", would have this URL: "/documents/7/notes/101"

http://backbonejs.org/#Model-url

因此,您可以在 MeModel 中定义方法 url 并在那里生成 url(如果没有其他用户 - 您可以只返回字符串“/me”或根据模型属性生成(例如,如果模型有 id 则切换)

关于javascript - 多个 Backbone.js 集合选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22798277/

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