EmberJS:内容更改时,undefined不是辅助函数

时间:2014-10-27 03:18:59

标签: javascript ember.js

当我在文件destroyRecord()上触发app/controllers/transactions.js时,我收到如下错误。

enter image description here

以下是我的文件。

应用/模板/ transactions.emblem

div
    format-datetime model.created_at
    bs-button clicked='destroyRecord' clickedParamBinding='model' size='xs' icon='glyphicon glyphicon-remove' type='danger' title='Delete'

应用/助手/格式datetime.js

import Ember from 'ember';

export function formatDatetime(input) {
  if ( input ) {
    return '%@/%@/%@'.fmt(input.getDate(), input.getMonth()+1, input.getFullYear());
  } else {
    return '';
  }
}

export default Ember.Handlebars.makeBoundHelper(formatDatetime);

应用/控制器/ transactions.js

....
actions: {
  destroyRecord: function() {
    if ( confirm('Are you sure to delete?') ) {
      this.get('model').destroyRecord();
      this.transitionToRoute('index');
    }
  }
....

但是当我将文件app/helpers/format-datetime.js更改为:

import Ember from 'ember';

export function formatDatetime(input) {
  if ( input ) {
    return input; // look this 
  } else {
    return '';
  }
}

export default Ember.Handlebars.makeBoundHelper(formatDatetime);

没有发生错误。所以我想我的错误在于我的帮助文件。任何解决方案?

1 个答案:

答案 0 :(得分:0)

在输入中未定义getDategetMonthgetFullYear,在那里抛出调试器并找出输入是什么。

export function formatDatetime(input) {
  if ( input ) {
    console.log(input);
    debugger;
    return '%@/%@/%@'.fmt(input.getDate(), input.getMonth()+1, input.getFullYear());
  } else {
    return '';
  }
}