放置你的帮助文件的正确方法是什么以及解决方案从插件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
我得到以下输出:
✘ Error: Assertion Failed: A helper named 'displayHelper' could not be found
我得到这个帮手只有这样,才能由解析器发现是添加引用帮手组件的进口正在使用它像这样:
import displayHelper from '../helpers/display-helper';
这似乎并不正确,我就已经想好了竟被解析d已经自动找到了这个?
另外,即使我有参考,下面的代码结束了与上述相同的错误消息:
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
文档说或助手无法找到。
我已经试过这个可悲的是,没有文件被自动加载到应用程序/文件夹中。 0.2.2似乎在很多方面都被打破了。 – dagda1 2015-04-05 15:39:42
与0.2.3也有类似的问题。此外,[this](http://stackoverflow.com/questions/29506064/ember-cli-custom-input-helper)以及ember-cli [docs](http://www.ember-cli.com /#resolving-handlebars-helpers)说:“建议使用组件代替。”但我不确定为什么你需要一个组件来在Ember-CLI中定义一个帮助器?作为一个反例,请注意[本次回购](https://github.com/johnotander/ember-cli-dates)的结构,虽然它使用的是早期版本(0.2.0)。 – clekstro 2015-04-12 12:33:05
嗯......我不知道为什么它不适合你们,但你可以尝试在初始化程序中手动注册你的助手,只应该在名字中没有破折号的帮助者时才需要。请参阅http://www.ember-cli.com/#resolving-handlebars-helpers上的修剪示例 – Gaurav 2015-04-12 13:22:50