【问题标题】:Wrapping my head around Ember App Kit -differences compared to working with plain EmberEmber App Kit - 与使用普通 Ember 相比的差异
【发布时间】:2014-03-10 18:04:23
【问题描述】:

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

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

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

提前非常感谢!


编辑(20140506):

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

【问题讨论】:

  • @ToranBillups:我真的很喜欢你如何将 EAK 解构为它的组成部分——它确实有助于很好地解释它;我必须说这是一个比我期望得到的更好的答案。如果您想重新发布链接作为答案,我将奖励您解决方案。干杯!

标签: javascript ember.js ecmascript-6 ember-app-kit


【解决方案1】:

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

最后,您将拥有一个像 EAK 一样的带有任务的 Gruntfile(但您是手动构建的——一次一步)

【讨论】:

  • 我在这里找到了您的答案,因为我也无法弄清楚如何利用 EAK。我是否应该将此答案作为原始 EAK 没有很好记录的指示?通过遵循您的方法,我会更好地了解如何更好地规划和构建应用程序吗?谢谢。
  • 我认为 EAK 有很好的文档记录,但它是一种不同类型的文档。我写的博客系列解释了你如何从头到尾自己构建 EAK。它旨在展示 EAK 的方式/原因,最终您构建的 Gruntfile 与您使用 EAK 开箱即用的内容几乎相同(在功能上)。使用我的方法,您最终会得到相同的结果,但是自己完成后,您知道在需要时如何以及在何处调整构建。
  • 感谢您的意见。有时间我会看看:)
【解决方案2】:

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

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 之外的行为相同。

【讨论】:

  • 感谢您的回复,它确实有帮助。我想我只需要深入研究resolver you mentioned 的内部结构,就可以弄清楚它在哪里寻找东西,以及预期的命名约定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
相关资源
最近更新 更多