Я пытаюсь форматировать объект JS Date() с помощью момента.js с усами, однако усы не передают оценочное значение в функцию.Усы не оценивают {{}} внутри функции
В связи магистральная:
render: function() {
var user = this.user.toJSON(); //model
_.extend (user, {formatLastLoginAt: this.formatLastLoginAt});
var rendered = mustache.render (template, user);
this.$el.html (rendered);
return this;
},
formatLastLoginAt: function() {
return function (lastLoginAt) {
return moment (lastLoginAt).format ('Do MMMM YYYY');
}
}
пользовательского объекта привязки:
В шаблоне:
{{#lastLoginAt}}
<tr>
<td>Last Login:</td>
<td>{{#formatLastLoginAt}}{{lastLoginAt}}{{/formatLastLoginAt}}</td>
</tr>
{{/lastLoginAt}}
moment.js
дает NaN
ошибку как пропуск 'lastLoginAt' в качестве символьной строки «{ {lastLoginAt}} ", а не его значение Date()
.
Пробовал с moment().format()
, он работает. Таким образом, конструкция лямбда должна быть нормально, и {{#lastLoginAt}}
не пуст.
Все, что я пропустил? Цените свой совет. Спасибо.
Лямбда не дают сырые значения. Они могут дать вам рендеринг внутреннего раздела, хотя вы можете разобрать, чтобы восстановить исходное значение ... Не совсем практично, но это лучшее, что вы можете сделать с этим инструментом. Некоторые другие реализации Mustache на других языках более удобны и позволяют создавать лямбда-конструкцию (например, https://github.com/groue/GRMustache/blob/master/Guides/rendering_objects.md) –