【发布时间】:2012-11-19 07:33:45
【问题描述】:
呃,这个问题很难找到合适的标题,对不起。
在我正在构建的一个主干.js 应用程序中。模型、视图、模板都在单独的 javascript、html 文件中。我想将模型、视图和模板导出到应用程序引导程序文件 (app.js) 而不污染全局变量,即执行 window.App.Model = myModel;。通过导出,我的意思是使文件中的代码可用于 app.js 进行初始化和运行
我该怎么做?
有什么模式可以解决这个问题吗?可以举个例子吗
说明
在模型、视图和模板被拆分为许多不同文件的情况下,应用程序引导程序文件 app.js 应该有一些方法来访问这些 M、V、C 组件。因此,常见的方法是在 model.js 文件中执行以下操作
window.App.Model.PersonModel = Backbone.Model.extend({});
App.js
var instance = new window.App.Model.PersonModel();
var personView = new window.App.Views.PersonView({model:instance});
最后你看到所有东西都来自全局对象App,我认为这是构建应用程序依赖项的不安全、不恰当和弱的方式
建议
对于上面的问题,有人可以建议一个模板加载库(javascript模板,不管使用什么引擎),可以用来加载模板
【问题讨论】:
-
你能解释得更好吗? “不污染全局变量,即执行 window.App.Model = myModel; 那是什么意思。”?谢谢
-
@DanieleB 我为问题本身添加了描述,如果您想要更多,请告诉我
-
您能否详细说明一下:“我认为构建应用程序依赖项的方式不安全、不正确和弱”?
-
任何可以修改 App.js 的人都可以修改代码中的任何其他变量,并且使用 requirejs 不会阻止对 App.js 的需要。
标签: javascript design-patterns backbone.js