【问题标题】:Calling Model from Collection从集合中调用模型
【发布时间】:2013-11-17 09:07:40
【问题描述】:

收藏

define([
    'jquery',
    'underscore',
    'backbone'
], function($, _, Backbone){
    console.log("Loaded");

    var Jobs = Backbone.Collection.extend({
        url: function () {
            return 'http://domain.com/api/jobs?page='+this.page+''
        },
        page: 1
    });
    return Jobs;
});

型号

define([
    'underscore',
    'backbone'
], function(_, Backbone){
    var JobFilterModel = Backbone.Model.extend({
        defaults: {
            T: '1',  
            PT: '1',  
            C: '1',  
            I: '1'  
        }
    });
    // Return the model for the module
    return JobFilterModel;
});

在我的一个观点中,我设置了模型

 var jobListFilterModelUpdate = new JobListFilterModel();
            jobListFilterModelUpdate.set({value:isChecked});

我正在尝试从 Collection 中检索 MODEL,以便我可以使用 URL 发送正确的 QUERY。

问题 1

我如何从集合中的模型中检索

问题 2

检索到的集合是否会是更新后的模型,其中包含我在视图中设置的数据?

【问题讨论】:

    标签: javascript php jquery backbone.js underscore.js


    【解决方案1】:

    当您声明 Collection 时,您需要指定 model 属性,例如:

    var Jobs = Backbone.Collection.extend({
            url: function () {
                return 'http://punchgag.com/api/jobs?page='+this.page+''
            },
            page: 1,
            model: JobFilterModel
        });
    

    创建新模型后,您需要将其添加到集合中(假设您已创建 jobsCollection):

    var jobListFilterModelUpdate = new JobListFilterModel();
    jobListFilterModelUpdate.set({value:isChecked}); 
    jobsCollection.add(jobListFilterModelUpdate);
    

    回答 1

    您可以从基于idcollection.get(id) 的集合中检索模型。这里JobFilterModel 似乎没有任何id(您可以设置ModelidAttribute 属性来创建自定义id 属性)。 Backbone 还在客户端创建了唯一的 ID,但我不知道它们对您有什么帮助。如果您想根据模型的任何属性检索模型,您可以使用collection.findWhere()collection.where()

    答案 2

    是的。会的,但这取决于如何将您的 View 链接到 Collection

    【讨论】:

    • 我的收藏有 URL,我想在运行 URL 之前从模型中检索数据。嗯,我如何获取默认(模型)中的所有数据并从集合中读取?
    猜你喜欢
    • 1970-01-01
    • 2012-09-20
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多