【问题标题】:Backbone.js model before view? chicken before egg?视图之前的 Backbone.js 模型?先鸡后蛋?
【发布时间】:2012-08-17 06:03:28
【问题描述】:

我正在重写我的应用程序框架以供将来重用,我遇到了一个有趣的问题:

将应用程序与模型或视图一起线程化更好吗?

举例

将应用程序与视图一起处理可能看起来像(请忽略任何语法错误)

....
//inside of AppView() or something

 var somepage = new PageView({model:new PageModel({url:"whatever"}),some more stuff..}), some more..});
 // then in PageView's initialize, listen for the model's load to call render()..

还是这样做更好:

....

 var somepage = new PageModel({url:"whatever",view:new PageView({}),some more stuff..}), some more..});
 // then in PageModel's parse() function call this.view.render()..

就我个人而言,我倾向于在 View 流行的情况下对其进行编码,但我已经看到它以两种方式完成,并想知道是否有任何主要优势支持其中任何一种。

顺便说一句,用例基本上是一个框架,它在 JSON 中使用一种“站点地图”来设置整个站点(类似于 AS3 Gaia 框架对 XML 所做的),然后它会像这样启动:

【问题讨论】:

    标签: javascript model-view-controller backbone.js


    【解决方案1】:

    模型有 2 个典型用例

    1. 表示某种数据,通常引用服务器上的某种 rest Api。在这种情况下,视图管理和控制模型和模型中的数据。
    2. 表示应用程序的状态或视图(它是应用程序的一部分)的状态。在这种情况下,模型反映了视图的状态,但它自己没有任何任务。视图只对状态和状态变化做出反应。

    在这两种情况下,模型都应该是视图的一部分或附加到视图,反之亦然。很明显,选项 1。

    【讨论】:

    猜你喜欢
    • 2011-06-28
    • 2011-01-05
    • 2012-03-02
    • 2011-08-24
    • 2012-07-01
    • 2017-03-08
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    相关资源
    最近更新 更多