gpt4 book ai didi

backbone.js - 对 backbone.marionette 版本中 TodoMVC app 和 todolist 模块的区别感到困惑

转载 作者:行者123 更新时间:2023-12-04 02:39:31 24 4
gpt4 key购买 nike

我正在构建我的第一个 backbone.marionette 应用程序,但有些事情让我感到困惑。

TodoMVC 的 backbone.marionette 版本中似乎有两个不同的模块执行应用程序的工作:

首先是 TodoMVC,它是 Backbone.Marionette.Application 的一个实例,然后是 TodoMVC.TodoList,它似乎只不过是一个用于容纳 Controller 和路由器的容器。

为什么不将 Controller 对象简单地添加到 App 对象中?

另一个让我困惑的事情:在我在 stackoverflow 上看到的其他 Marionette 应用程序中,例如 this one , addInitializer() 是在 app 对象上调用的,但在 TodoMVC 应用程序中,addInitializer() 是在 todolist 对象上调用的。

这是否特定于想要拥有 Controller 对象的应用程序?

我还发现命名相当困惑,因为 TodoMVC(应用程序)和 Todolist( Controller 容器?)的名称暗示它们是 基础应用程序。 Todolist 模块在语义上可以称为 TodoController 吗?

最佳答案

Why isn't the controller object simply added to the App object?

这是一个模块化设计选择,与Single Responsibility Principle相关. TodoMVC 是顶级应用程序,TodoList 是我们应用程序中的一个模块(或子应用程序),它们都有自己的花园。这使我们能够制作任意数量的模块,而无需增加我们的顶级应用程序代码。

In other marionette apps... addInitializer() is called on the app object but in the TodoMVC application addInitializer() is called on the todolist object

我认为这只是 Application.Modules 的约定问题. TodoMVC 应用程序不需要任何初始化代码,因此我们不添加初始化函数。

关于backbone.js - 对 backbone.marionette 版本中 TodoMVC app 和 todolist 模块的区别感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13342522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com