我试图在我的ember.js应用中使用moment.js(使用ember-cli构建),我遇到了这个错误的麻烦
Handlebars error: Could not find property 'formatDate' on object
我认为它与此错误How to use Custom helpers in ember-app-kit?相同,但我已经采用相同的方法但尚未开始工作。有人有同样的错误?请帮我弄清楚。
我把它放了app.import('vendor/momentjs/moment.js');
中的Brocfile.js
和
"moment": true
中的.jshintrc
和ember-cli文档中的{{formatDate date}}
一样
我在PostsTemplate
中使用了帮助app/helpers/formatDate.js
我创建了一个帮助器var formatDate = Ember.Handlebars.makeBoundHelper(function(date) {
return moment(date).fromNow();
});
export default formatDate;
app/helpers/formatDate.js
我也在export default Ember.Handlebars.registerBoundHelper('formatDate',function(date) {
return moment(date).fromNow();
});
中尝试了这种语法,但两种方法都不起作用,并且都得到相同的错误
{{1}}
答案 0 :(得分:15)
我认为你的文件名' formatDate.js'格式错误。试试' format-date.js'它应该工作。
摘自http://iamstef.net/ember-cli/:
如果解析器的名称包含短划线(反向词,翻译文本等),则只能由解析器自动找到句柄助手。这是在Ember中做出的选择的结果,帮助消除助手的属性消除歧义,并减轻所有绑定的助手解析的性能损失。
使用新的'格式日期'像这样的助手:
{{format-date "29/05/2014"}}
答案 1 :(得分:1)
我也遇到了这个症状,并有一个不同的解决方案。
我在app / helpers / fh.js中有一个名为'fh'的助手,以便能够使用它我需要将它添加到控制器中,如下所示
import fh from '../helpers/fh';
如果我没有导入行,我会收到以下错误:
“Handlebars错误:无法在对象上找到属性'fh'”