【问题标题】:Backbone.js views and models correlation?Backbone.js 视图和模型相关性?
【发布时间】:2014-12-08 12:32:07
【问题描述】:

背景:我是第一次使用 Backbone。在我的项目中,我有一个“主要”模型——我们称之为Customer。始终只显示一个Customer。我有一个CustomerList 集合,它将Customers 排队。单击按钮,将显示下一个CustomerCustomerView 完成所有渲染等操作。

问题:每次切换到下一个Customer 时,我是否应该创建一个CustomerView 的新实例?另一种可能性(我开始使用)只是视图的一个实例并将模型传递给视图的渲染函数(view.render(model))。这样,我可以从List 中获取下一个Customer,将其传递给视图的渲染函数,仅此而已。我想知道这是否适合 Backbone 的 MVC 模式?获取新模型、终止当前 View 并创建新 View 实例似乎更“标准”。

请问有经验的 Backbone 开发人员有什么建议吗?谢谢。

【问题讨论】:

    标签: javascript backbone.js


    【解决方案1】:

    如果唯一改变的是实际模型,那么您绝对应该保留您的CustomerView,并简单地提供一个新模型来显示。

    这肯定与功能分离的 MVC 概念有关。 CustomerView 只需要相关数据(由模型提供)即可执行渲染视图的任务。

    这样想 - 是否有任何需要重置您的 CustomerView 模块?它根本不应该保存和建模特定信息,因此本质上它不应该关心您更改模型 - 只需要在数据更改后重新渲染它。


    如果用户导航到应用程序的另一个与客户无关且无法查看客户详细信息的部分,那么对我来说完全“杀死”当前视图是有意义的。只有这样,完全释放不需要的模块才有意义。

    【讨论】:

    • 感谢您的好评! :)
    • 不客气@Oskar!很高兴为您提供帮助,祝您编码愉快!
    猜你喜欢
    • 1970-01-01
    • 2012-07-01
    • 2012-04-30
    • 1970-01-01
    • 2012-02-14
    • 2011-11-14
    • 1970-01-01
    • 2014-08-11
    • 2011-11-07
    相关资源
    最近更新 更多