我的头围绕着Ember应用套件-与使用普通Ember相比的差异



我已经开始使用ember应用程序套件,并阅读了它的指南。然而,我很难理解常规应用程序和Ember app Kit使用ES6模块构建各种位的方式之间的差异,而不是将所有内容都填充到用作命名空间的全局变量中(例如,应用程序)。

我发现这方面的解释不是很清楚:

  • Ember如何在自动生成模型、视图、路线和控制器中应用其魔力
  • 它希望在哪里找到它们
  • 我应该遵循哪些命名约定
  • 如果我已经创建了一个模板、路由或控制器,而Ember没有找到/检测它,只是在它的位置生成一个默认的,我该如何找到它的位置;或者在这种情况下进行调试
  • 与使用Ember应用套件的开发相比,标准Ember应用程序开发中的这些有什么不同

非常感谢!


EDIT(20140506):

这些资源很好地解释了ES6模块和EAK:

  • 简介:evitrout:开始使用ES6
  • 一系列的帖子:[toranb:http://toranbillups.com/blog/archive/2014/04/06/Building-your-own-ember-app-kit-lite/),带有ES6模块专用

实际上,就在几周前,我还写了一个关于这个主题的博客系列。我从一个基本的(全局)成员应用程序开始,并将其转换为8个不同的帖子。

  • 第1部分-简介
  • 第2部分-连接(介绍Grunt)
  • 第3部分-Handlebars模板预编译
  • 第4部分-ES6模块
  • 第5部分-JSHint
  • 第6部分-Watch+Live Reload
  • 第7部分-测试
  • 第8部分-部署

最后,你有了一个Gruntfile w/tasks,就像EAK一样(但你都是手工构建的,一步一个脚印)

Stefan Penner在解释Ember App Kit网站上的模块方面做得很好,但总结一下:

Ember应用套件使用ES6模块转换器将应用程序的所有Ember类转换为AMD模块。在"正常"Ember开发中,您将类分配为应用程序的属性。。。

App.IndexController = Ember.Controller.extend(...);

但是使用EAK,您可以用ES6语法编写模块:

export default Ember.Controller.extend(...);

转发器将使用文件名作为其模块名称的基础(假设它保存在app/controllers/index.js:

define('controllers/index', Ember.Controller.extend(...));

Ember应用套件然后使用自定义解析器来查找使用AMD的模块,而不是将它们作为应用程序的骆驼壳属性来查找。(我没有代表发布另一个链接,所以谷歌搜索ember jj abrams解析器。)

如果Ember查找模块但没有找到,它的行为与EAK之外的行为相同。

相关内容

  • 没有找到相关文章

最新更新