Backbone模型应该是视图模型,域模型还是两者?

时间:2012-07-23 15:34:10

标签: javascript backbone.js models

很抱歉,如果问题含糊不清,但我确实无法找到相关信息。我来自Flex / ActionScript世界,在大多数情况下,我们有非常简单的值对象(VO)来表示用户或地址之类的东西,我们有通常代表这些VO的集合以及业务逻辑的模型。有些框架包含视图模型MVVM。我知道没有“正确的方法”去做这些事情,但我似乎无法指出基础知识。

所有Backbone视图是否应该拥有自己的模型?鉴于我可能没有一个名为“用户”的视图,我还会包含域模型吗?

文件夹看起来像这样吗?

  • 应用
    • 模型
        • 用户
        • 地址
      • 视图
        • UserProfileModel
    • 的观点
      • UserProfileView
    • 集合
      • 用户

再次,抱歉,如果这没有意义或太笼统。我只想了解一下JS世界在MVC模式方面取得的进展。感谢。

1 个答案:

答案 0 :(得分:2)

我认为这里只有一个答案。每个案例都会有答案。

所有Backbone视图都应该有自己的模型吗?

没有

将会有 Views 引用 Model ,其他人将引用 Collection 。还会有参考多个模型的视图,而其他模型将参考无模型。

视图是用户界面。它向用户显示数据并监听用户在此数据表示上触发的事件。

例如,如果我有一个名为Friend的模型,并且我想创建一个接口来列出一堆这样的模型我将会:

  • FriendsView :这是代表朋友聚会的视图
  • FriendView :这是FriendsView的子视图,仅代表一位朋友。它还可以收听此朋友的 destroy 按钮上的click

但我也希望在我的服务器中有一个表格来搜索朋友:

  • FriendSearchView :其中没有任何模型或集合的引用。但正在收听用户填写输入字段。

我还会包含域名模型吗?

我不知道你对域模型的意思是什么,但是如果你在询问将业务逻辑放在哪里 Backbone对此非常不了解。我建议尽可能多地将计算放入模型或集合中。您也可以使用自己的纯JS Util库。

保持视图清洁。仅响应User事件并根据需要调用Model和Collection方法。还要监听模型或集合中的变化,从中显示数据。

文件夹的外观如何?

好吧,Backbone再次对此不了解。有很多关于此的文献。

我的项目用量很小,少于30个文件。我将它们全部放在同一个文件夹中,并带有这样的命名对流:

  • 朋友
  • FriendView
  • FriednsView