ember错误:编译错误:不是帮助器

时间:2017-11-14 10:43:58

标签: ember.js

使用Ember.js开发前端时出现以下错误:

  

ember错误:编译错误:' ...'不是帮手

此错误的含义是什么?

4 个答案:

答案 0 :(得分:7)

<强>原因

如果没有组件帮助,则在您的项目或从属插件中找不到给定名称时,Ember会抛出此错误。

如何解决

您应该检查您编写的组件或帮助程序的名称(可能的错误是拼写错误或错误地编写组件的目录结构)。

twiddle显示当组件my-component被错误地调用为{{my-component2 x=x}}而不是{{my-component x=x}}时此错误消息的示例。

答案 1 :(得分:1)

如果您的组件位于所有正确的位置,但组件名称中没有破折号,则此错误也可能发生在旧版(Octane 之前)的 Ember 版本中。 As per the docs,组件的名称中必须至少包含一个破折号:

<块引用>

组件名称中必须至少有一个破折号。所以 blog-post 是一个可接受的名称,audio-player-controls 也是如此,但 post 不是。这可以防止与当前或未来的 HTML 元素名称发生冲突,使 Ember 组件与 W3C 自定义元素规范保持一致,并确保 Ember 自动检测组件。

如果您尝试创建名称中不带破折号的组件,Ember 将找不到它并会出现此错误。

似乎在较新版本的 Ember 中取消了这一要求,其中组件以大写字母开头,以区别于原生 HTML 元素。

答案 2 :(得分:0)

来自documentation

  

Helpers允许您为模板添加额外的功能,超出了Ember中包含的开箱即用功能。帮助程序对于将模型和组件中的原始值转换为更适合用户的格式非常有用。

看起来您正在使用未定义的帮助程序。因此,请查看(并可能提供)更多日志输出。您可能在.hbs个文件中的一个(或多个)中使用了未定义的帮助程序。

答案 3 :(得分:0)

组件和文件名必须相同。这个解决方案对我有用。