モデルで複数の言語をサポートするために、keystone.js を拡張しています。
元のモデルは次のようになります。
Post.add({
title: { type: String, required: true },
publishedDate: { type: Types.Date, index: true },
//... more irrelevant fields
});
私の拡張モデルは次のようになります。
Post.add({
title: { type: String, required: true },
en: {
title: { type: String },
publishedDate: { type: Types.Date, index: true },
//... more irrelevant fields
},
es: {
title: { type: String },
publishedDate: { type: Types.Date, index: true },
//... more irrelevant fields
},
//... more languages following the same pattern
});
ビュー テンプレート内でネストされた publishedDate プロパティを使用すると問題が発生します。
元のモデルで動作する元のビュー コード:
{% if post.publishedDate %}
<br>on {{ post._.publishedDate.format('MMMM DD, YYYY') }}
{% endif %}
新しいモデルの調整されたビュー コード (ここで問題が発生しています):
{% if post[lang].publishedDate %}
<br>on {{ post[lang]._.publishedDate.format('MMMM DD, YYYY') }}
{% endif %}
I を使用post[lang].xxxxxx
すると、投稿内の他のすべての項目を参照できます (たとえば、post[lang].title
.
これらのネストされたアンダースコア関数が次のエラーで失敗する原因となっている何かがありませんか?
リクエストに対して non_object_property_load エラーがスローされました" /en/blog
TypeError: 未定義のプロパティ 'publishedDate' を読み取れません
編集:
それはより独特になります...以下はうまくいくようです:
{% if post[lang].publishedDate %}
<br>on {{ post._[lang].publishedDate.format('MMMM DD, YYYY') }}
{% endif %}
これが機能する理由 (またはこれを達成するためのより良い方法) の説明を誰かが提供できる場合は、本当に感謝しています。