【问题标题】:BackboneJS and Model/CollectionBackboneJS 和模型/集合
【发布时间】:2012-10-29 12:26:16
【问题描述】:

有这样的json数据:

{ tournaments: [ {
   tournament_id: "..."
   tournament_name: "..."
   events: [ {
       event_id: ...
       event_name: ....
       param : [ {
           param_a : 
           param_b : ..
           subparan : [ {
               sub_1: 1
               sub_2 : 2...

所以。我不明白 - 如何将它实现为 BackBone Collection/Model 样式?

如何处理更改 sub_1? - 收集收集收集?

【问题讨论】:

    标签: model-view-controller backbone.js


    【解决方案1】:

    骨干教程中最简单的方法described

    var Events = Backbone.Collection.extend({
        initialize: function(){
            this.params = new Params() 
        }
    })
    
    var Tournaments = Backbone.Model.extend({
        initialize: function(){
            this.events = new Events()
        }
    })
    var tournaments = new Tournaments()
    

    您可以根据需要继续嵌套。当我从事类似的任务时,我将每个集合包装在表示集合状态的模型中,并在响应集合事件时改变自身。这允许不向嵌套集合询问其在模型中具有实际状态的状态。

    var CollModel = Backbone.Model.extend({
        defaults: {
            state = ''//or list or dict or whatever
        },
        initialize: function(){
            this.items = new Backbone.Collection();
            this.items.on('all', this.setState, this)
        },
        setState: function(){
            this.set(
                'state',
                this.items.reduce(function(state, item){
                    /*calculate state*/
                }, '')
            )
        },
        info: function(){
            return this.get('state')
        }
    })
    

    因此,您可以使用类似技术嵌套集合模型并直接通过 instance.info() 读取它们的状态,具体取决于您的计算方式。您的顶层模型状态将从底层模型集合的级联更新中更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多