6

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

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

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

非常感谢提前!


编辑(20140506):

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

4

2 回答 2

5

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

最后,你有一个像 EAK 一样的带有任务的 Gruntfile(但你已经手动构建了它 - 一次一步)

于 2014-05-06T13:08:38.913 回答
4

Stefan Penner 很好地解释了 Ember App Kit 网站上的模块,但总结一下:

Ember App Kit 使用ES6 Module Transpiler将您应用的所有 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 App Kit 然后使用自定义解析器使用 AMD 查找模块,而不是将它们作为应用程序的驼峰式属性查找。(我没有代表发布另一个链接,所以谷歌搜索 ember-jj-abrams-resolver。)

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

于 2014-02-12T12:47:23.903 回答