我在Javascript编程已经有一段延长的命名空间。最近我做了一个相当庞大的jQuery项目和这美妙的文章中描述的应用模块模式:http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth如何使用EmberJS
这一切都很好,很正常,并且代码看起来光滑和管理的,但我觉得还可以更好。我已经花一天时间寻找一些JavaScript框架,主要是那些:
- 有无UI绑定支持
- 有一个模板系统
- 可以用jQuery工作
- 帮我安排我的代码在类似的方式,我有我整个框架跌跌撞撞像AngularJS,KnockOutJS,SpineJS,JavascriptMVC,等等。一个真正贴出来的模块模式
一样 - 并称赞相当 - 为EmberJS。
我决定给它一个镜头,但它并不容易。 EmberJS教程的可用性非常有限。经过很长时间的努力,我设法让一些东西运行,我喜欢EmberJS做的事情!只有一件事我无法弄清楚 - 这也是我的问题:如何扩展Ember命名空间(使用Ember.Application.create制作)?
澄清:我的项目的旧版本有一个核心命名空间和一个Util命名空间。两者都包含其他所有类别可以使用的各自的功能。我如何在初始命名空间的顶部使用带有函数的Core-和Util-命名空间?
难道我只是做:
MyNamespace = Ember.Application.create();
MyNamespace.Core = Ember.Application.create();
MyNamespace.Util = Ember.Application.create();
还是别的什么?
首先,感谢您的回复迅速,非常详细。其次,我并不介意非嵌套命名空间,我仅仅是寻找正确的函数调用来创建一个名为Ember.Namespace.Create的命名空间对象!如果有的话,我可以使用我的模块模式方法来使Ember应用程序的名称空间(无论嵌套或不嵌套),但这只是肮脏。 – 2012-04-22 20:54:06
刚试过之后,我发现嵌套命名空间实际上可以工作。由于受欢迎的需求,它可能在最近的版本中发生了变化? – 2012-04-23 09:02:08