繁体   English   中英

从集合调用模型

[英]Calling Model from Collection

采集

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

检索到的集合是否将是具有在View中设置的数据的更新模型?

当您声明一个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(可以设置idAttribute的属性Model来创建自定义的id属性)。 Backbone还会在客户端创建唯一的ID,但我不知道它们会对您有什么帮助。 如果要基于模型的任何属性检索模型,则可以使用collection.findWhere()collection.where()

答案2

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM