放置你的幫助文件的正確方法是什麼以及解決方案從插件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