1

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

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

文件夹看起来像这样吗?

  • 应用程序
    • 楷模
      • 领域
        • 用户
        • 地址
      • 看法
        • 用户档案模型
    • 意见
      • 用户资料视图
    • 收藏品
      • 用户

再次抱歉,如果这没有意义或过于笼统。我只是想了解 JS 世界在 MVC 模式方面已经走了多远。谢谢。

4

1 回答 1

2

我认为这里没有唯一的答案。每个案例都会有一个答案。

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

不。

会有View引用Model,其他View 将引用Collection。还有一些视图会引用多个模型,而其他视图则根本不会引用非模型。

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

例如,如果我有一个模型被调用Friend,并且我想创建一个接口来列出一堆这样的模型,我将拥有:

  • FriendsView:这是一个代表朋友集合的视图。
  • FriendView:这是 FriendsView 的子视图,仅代表一个朋友。它也可以监听这个好友click销毁按钮。

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

  • FriendSearchView:不引用任何模型或集合。但是正在听用户填写输入字段。

我还会包括域模型吗?

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

保持视图干净。仅响应用户事件并根据需要调用模型和集合方法。还监听从中显示数据的模型或集合中的更改。

文件夹应该是什么样子?

好吧,Backbone 再次对此不可知论。有很多关于这方面的文献。

我的项目过去很小,不到 30 个文件。我将它们全部放在同一个文件夹中,命名对流如下:

  • 朋友
  • 朋友们
  • 朋友视图
  • 弗里登斯视图
于 2012-07-23T16:17:51.980 回答