【发布时间】:2012-09-23 15:12:31
【问题描述】:
我在 Javascript + BackboneJS(一个 MVC 框架)+ RequireJS 框架中工作,但这个问题有点面向对象。
首先让我解释一下,在 Backbone 中,您的视图是传统视图和控制器的混合,而您的 HTML 模板是传统的 MVC 视图
为此苦苦思索了一段时间,但我不确定正确/务实的方法应该是什么。
我有一个 User 对象,其中包含许多代码所依赖的用户偏好(如单位系统、语言选择等)。
我的一些视图在不使用模板的情况下完成了大部分工作(通过使用 3rd 方库,如映射和图形库),因此它们依赖于 User 对象来处理单位转换,例如例子。我目前正在使用 RequireJS 来管理该依赖关系,而不会过多地破坏封装。
我的一些视图自己做的工作很少,只将模型数据传递给我的模板引擎/模板,这些模板引擎/模板完成工作并且确实依赖于用户对象,同样,用于单位转换之类的事情。将此依赖项传递给模板的唯一方法是将其注入模型,然后将模型传递给模板引擎。
我的问题是,如何最好地处理如此广泛需要的依赖项? - 创建一个可在任何地方访问的应用程序范围的引用/全局对象? (YUK) - 使用 RequireJS 托管依赖项,尽管通常只建议对类/对象定义而不是具体对象使用托管依赖项加载。 - 或者,只使用依赖注入,然后手动将该依赖传递给需要它的所有东西?
【问题讨论】:
标签: javascript oop model-view-controller backbone.js requirejs