【问题标题】:Ember container.lookup fails to find componentEmber container.lookup 找不到组件
【发布时间】:2016-09-14 03:21:54
【问题描述】:

我正在尝试动态加载 EmberJS 组件,但查找返回未定义。我对 Ember 还很陌生,所以我想我缺少一些概念。这是我的代码:

var component = getOwner(this).lookup('component:mycomponent', {singleton: false});

这是我刚刚创建的一个新组件。它有它的组件类(.js)、模板(.hbs)和路由。如果我将“mycomponent”替换为已经存在的组件的名称,比如 otherComponent,则查找成功。新类、模板和路由与其类型的其他文件位于相同的文件夹中。我不知道为什么这会失败,因为我之前使用过其他组件的查找。有人可以启发我吗?我是否需要以某种方式注册新组件以便通过查找找到它?

【问题讨论】:

  • 如何构建代码?不要忘记您的代码被转译为 ES5 AMD 模块,并且您的模板被编译为 JS。但是,如果您将 ember-cli 与开发服务器一起使用,它应该会识别文件更改并重新构建。

标签: ember.js components


【解决方案1】:

我想通了。我大约 6 个月没有从头开始创建组件,也不记得我是如何创建文件的。我在 Sublime 中为这个组件创建了文件。没有其他想法,我去了命令行并运行了“ember g component mycomponent”。我告诉它跳过覆盖现有文件,它创建了一个集成测试文件,然后 app/data/components/mycomponent.js 包含类文件路径的导出。现在它起作用了。我真的希望 Ember 文档总体上对事情更清楚。他们只需要告诉我它是如何搜索组件的,而我会从那里找到它。不,相反,我得到的只是 Ember 注入的概述,以及使用查找的示例。这通常就像玩 20 个问题试图找出文档一样,然后用两个小时的谷歌搜索一无所获。一个简单的一行(文件)修复,天哪。

【讨论】:

  • 嗨,您能否在指南和/或 api 文档存储库中就您认为缺少的内容提出问题?这对我们来说将是非常有用的反馈。
猜你喜欢
  • 2015-10-19
  • 1970-01-01
  • 2017-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-17
相关资源
最近更新 更多