【问题标题】:Binding the output from an Ember helper to the value of an Ember input helper将 Ember 助手的输出绑定到 Ember 输入助手的值
【发布时间】:2015-02-26 17:15:54
【问题描述】:

我编写了一个 Ember/Handlebars 助手来使用 Moment.js 格式化日期:

Ember.Handlebars.registerBoundHelper('formattedDate', function(date, format) {
    var formattedDate = moment(date).format(format);
    return new Handlebars.SafeString(formattedDate);
});

现在,我想将它与 Ember 输入助手一起使用(其中 startDate 是范围内模型的属性):

{{input id="startDatePicker" class="form-control" value={{formattedDate startDate 'MMM D'}} required=true}}

但这不起作用并引发语法错误。有没有办法做到这一点?

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    您可以通过使用子表达式来避免语法错误(请参阅有关子表达式的更多信息here)。

    所以,你会这样做:

    {{input id="startDatePicker" class="form-control" value=(formattedDate startDate 'MMM D')}}

    此时您不会收到语法错误,但它的行为仍然很奇怪。我建议您改为为格式化日期实现一个计算属性。请参阅我最近给出的以下答案,这应该会给您一个很好的起点

    https://stackoverflow.com/a/28774170/908842

    【讨论】:

    • 感谢您的回答。似乎子表达式实际上不适用于 boundHelpers,只有普通的助手。但我使用了你的第二个建议,只是在控制器中创建了一个计算机属性。我的助手应该帮助我避免在许多不同的控制器中对这个计算属性的需要,但是哦,好吧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 2015-12-28
    相关资源
    最近更新 更多