【问题标题】:Javascript framework that cleanly handles sub-objects?干净地处理子对象的Javascript框架?
【发布时间】:2012-02-20 19:17:23
【问题描述】:

我一直在对主干和淘汰赛等框架进行大量研究,并试图找出处理密集对象层次结构以及将对象参数绑定到 DOM 的最佳选择。

我正在处理具有自己的参数但也包含对象的对象。那些对象又具有自己的参数并包含对象等。到大约 5-6 个对象的级别。例如:

var Program = {
    id: 123,
    name: "some name",
    cycle1 {
        cycleName: "another name",
        startDate: "1-1-2012",
        day1 {
            startDate: "1-1-2012",
            metaData {
                foo: "bar",
                foo2: "bar 2"
            }
        }
        day2 {
            startDate: "1-1-2012",
            metaData {
                foo: "bar",
                foo2: "bar 2"
            }
        }
    }
    cycle2 {
        cycleName: "another name",
        startDate: "1-1-2012",
        day1 {
            startDate: "1-1-2012",
            metaData {
                foo: "bar",
                foo2: "bar 2"
            }
        }
        day2 {
            startDate: "1-1-2012",
            metaData {
                foo: "bar",
                foo2: "bar 2"
            }
        }
    }
}

这是一个非常简单的例子,但给出了一个想法。这里有一个 Program 对象,其中包含未知数量的 Cycle 对象,其中包含 Day 对象,其中包含 MetaData 对象。同样,它们的数量几乎可以肯定是完全可变的,并且每个项目都需要绑定到一个 DOM 元素。

我知道 Backbone 确实不是为嵌套设置的......虽然 Knockout 可能也不是,但我觉得我可能可以更快地了解它。

【问题讨论】:

  • 这里的“处理”到底是什么意思?换句话说,您希望框架对对象做什么
  • 好问题。句柄是指简单的 DOM 绑定。每个属性都需要绑定到一个文本字段,并嵌套在我需要切换状态的 div 中; addClass(".active") 到一个,从所有其他人中删除,类似的东西。我可以在程序上完成所有这些,但它很混乱,更难维护,而且可扩展性较差。

标签: javascript frameworks


【解决方案1】:

我不能说 Backbone,但是 Knockout 可以很好地处理嵌套对象。

例如,您可以设置一个用于迭代主对象的模板,然后在该模板内设置一个元素,您可以在其中使用另一个模板来迭代子对象,依此类推。

或者您可以直接在主模板中迭代子对象,或者最适合您的用例。

【讨论】:

  • 是的,Knockout 似乎可以处理我的情况。似乎很多人都喜欢 Backbone 的 MVC 风格,但 Knockout 似乎更有意义(对我而言),尤其是在考虑 DOM 之类的东西并绑定到它时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
  • 1970-01-01
  • 1970-01-01
  • 2021-07-14
  • 2020-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多