【发布时间】:2015-06-09 06:42:44
【问题描述】:
放置帮助文件的正确方法是什么?对于从插件 ember-cli 项目中找到它们的解析器,它们应该放在哪里?
我正在运行 ember-cli 0.2.2。
我从一个插件项目生成了一个助手:
ember g helper display-helper
生成器将文件放在app/helpers 中,这对我来说似乎是错误的,我原以为它应该放在addon 助手中。我将文件移动到addon/helpers,它看起来像这样:
export default Ember.Handlebars.registerBoundHelper('displayHelper', function displayHelper(searchPath) {
return new Ember.Handlebars.SafeString(get(this, searchPath));
});
当我运行 ember test 时,我得到以下输出:
✘ 错误:断言失败:无法使用名为“displayHelper”的助手 找到了
让解析器找到此帮助器的唯一方法是添加一个导入,该导入在使用它的组件中引用该帮助器,如下所示:
import displayHelper from '../helpers/display-helper';
这似乎不正确,我原以为解析器会自动找到它?
此外,即使我有参考,以下代码最终也会出现与上述相同的错误消息:
import Ember from 'ember';
var get = Ember.get;
function displayHelper(context, searchPath) {
return new Ember.Handlebars.SafeString(get(context, searchPath));
}
export default Ember.Handlebars.makeBoundHelper(displayHelper);
所以总结一下,我必须在其模板使用助手的组件中有这一行:
import displayHelper from '../helpers/display-helper';
而且我必须使用 registerBoundHelper 而不是 makeBoundHelper 就像文档说的那样,否则找不到助手。
【问题讨论】: