我怎么能得到从服务器使用Backbone.js模型的集合
How can I get a collection of models from the server using Backbone.js?
我无法找出正确的方法从服务器中获取模型集合到我的主干集合,假设我不希望从DB中获得所有模型,而是一组模型(由特定的模型属性过滤)。
我能想到的唯一方法是重写Fetch并使用函数的"options"参数将过滤器定义传递给我的Backbone。同步功能。
有更好的方法吗?
设置集合最常用的3种方法:
-
在页面中引导模型,然后用
加载它们Collection.reset();
// you can print this trough serverside in your view, (you are bootstrapping these models) var bsModels = [{'name': 'name1'},{'name': 'name3'},{'name': 'name2'}]; // in your code you can use that bootstrapped data via the reset method. var myModel = Backbone.Model.extend({}); var myCollection = Backbone.Collection.extend({ model: myModel }); myCollection.reset(bsModels);
-
你可以使用取回,但它会加载任何和所有的方法,除非你重写取回方法
-
第三种选择是编写自己的ajax调用,获取正确数量的模型,并使用与#1相同的技术,使用
Collection.reset(data);
当然,有更好的方法!您可以将查询参数传递给fetch()
调用。所有传递给fetch的选项都直接进入$.ajax()
。例如:
myCollection.fetch({
data: {
search: "boo",
limit: "20"
}
}
由于这将转换为GET请求,因此这些请求将被附加到查询字符串中,您可以在服务器上解析它们并返回集合的适当项。
如果您喜欢,您可以为特定类型的集合重新定义fetch()
,以便它总是发布适当的查询参数。
相关文章:
- backbone.js无法渲染视图
- 如何使用backbone.js从集合中获取模型名称
- Backbone.js restful json API design
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- Backbone.js micro templating
- FancyTree JS+Backbone.JS-将数据加载到FancyTree时出现问题
- Backbone.js将模型绑定到视图时出错
- minimy javascript是什么意思?Backbone.js
- Backbone.js视图中的多个模型
- 在哪里存储HTML模板以在Backbone.js中使用
- require.js+backbone.js:如何构造具有初始化函数的模块
- JS/Backbone/Chaplin 事件处理程序未触发
- 使用Undercore.js/Backbone.js模板中的IF语句
- Node.js / backbone.js应用加载配置文件设置
- 渐进式增强- Node.js, Backbone.js
- node.js, backbone, socketio, express和coffee script都在一起吗?
- JS / Backbone -我的简单脚本不会触发"validate"在基本模型中
- Backbone-relational.js + Backbone.View(s)
- Backbone.js:“backbone . collection”;类支持不同类型的对象,以及类如何工作
- Require.js/Backbone.js:多个视图使用相同的集合