私は mustache.js を初めて使用し、node.js の Express 3.0 で使用しています。テンプレートで時間をフォーマットするためにヘルパー関数を使用したいと考えています。
app.js で:
app.locals({
helper: {
friendly_time: require('./libs/util').friendly_time
}
});
Friendly_time は関数function friendly_time(date){ ... }
、日付はDate
オブジェクトです。
index.hjs で:
{{#articles}}
<div class="org-articles">
<ul class="org-articles-list">
<li class="org-articles-item">
<a class ="org-article-title" href="/o/{{title}}">
{{title}}
</a> -
<span class="org-article-mtime">
{{#helper.friendly_time}}
{{mtime}}
{{/helper.friendly_time}}
</span>
</li>
</ul>
</div>
{{/articles}}
articles
次のようなオブジェクトを含む配列です。
{
title: 'title', // a string
mtime: new Date() // a js Date object
}
そして、プロセスはエラーをスローします:
TypeError: Object {{mtime}} has no method 'getFullYear'
articles[i].mtime
文字列として扱われ、エラーが発生することはわかっ{{mtime}}
ています。しかし、これがどれほど正しいかはわかりません。どんな助けでも大歓迎です。