使用moment.js的Ember.js助手(使用ember-cli):把手错误:找不到属性

时间:2014-05-28 03:43:39

标签: ember.js momentjs

我试图在我的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}}

2 个答案:

答案 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'”