2

我正在编写一个大型木偶应用程序,它最初是从路由器/控制器运行的。

这是我的问题——在控制器中包含不适用于路由的其他功能是一种好习惯吗?

所以说我有以下方法:

index : function() {
   alert('test!');
}

能够在初始化路由时声明未调用的控制器中的其他函数是否符合最佳实践?像这样:

noRouteAssociated: function() {
     alert('test!');
}

index: function() {
     this.noRouteAssociated();
}

显然这是一个简化的示例,但我试图避免将大量信息或函数声明放在方法中,因为它们与路由器相关联。

4

1 回答 1

1

@davidsulc 在这篇 SO 帖子中最好地说明了控制器的角色和职责,更好的是他的新书

一般来说,如果它们控制您的应用程序的工作流程,则可以包含不适用于路由的方法。事件触发就是一个很好的例子,但是如果你想改变某些东西的外观或从数据库中检索数据,你应该将这些方法分别移动到视图或模型中。下面的块引用直接取自Marionette 的控制器文档

Controller这个名字势必会引起一些混乱,这是相当不幸的。有一些关于如何称呼这个对象的讨论和辩论,人们会将此与 MVC 样式控制器混淆的想法多次出现。最后,我们还是决定将其称为控制器,因为典型的用例是控制应用程序和/或模块的工作流和过程。

但事实是,这是一个非常通用的多用途对象,可以在许多不同的场景中扮演许多不同的角色。我们总是乐于接受建议,有充分的理由和讨论,关于重命名对象以更具描述性、更少混淆等。如果您想建议一个不同的名称,请在邮件列表或 github 问题列表中这样做。

于 2013-08-13T14:09:46.160 回答