无法格式化keystone.js中的嵌套日期字段
Cannot format nested date field in keystone.js
我正在扩展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 %}
使用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 %}
如果有人能解释为什么这是有效的(或更好的方法来实现这一点),我将不胜感激
@JRulle,我假设错误在以下行:
<br>on {{ post[lang]._.publishedDate.format('MMMM DD, YYYY') }}
问题是下划线方法属于List
对象。例如,要访问post.en.publishedDate
的下划线方法,可以使用以下语法:post._.en.publishedDate.format('MMMM DD, YYYY')
您应该将上面的行更改为:
<br>on {{ post._[lang].publishedDate.format('MMMM DD, YYYY') }}
相关文章:
- 用嵌套函数和默认函数定义函数
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 可以简化嵌套的延迟Q Promises解析吗
- 用于搜索的聚合物嵌套绑定
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- d3中堆栈函数和嵌套函数之间的差异
- 如何打印嵌套对象的所有值
- JavaScript 中的嵌套函数和 “this” 关键字
- 设置嵌套对象属性的更好方法
- querySelector/getElementByClassName嵌套项的顺序
- 猫鼬在特定记录中查找嵌套记录
- 访问嵌套JSON对象的键,其中键是动态的
- D3嵌套组作为x轴
- Ionic和angularjs嵌套步骤应用程序
- Mongoose查询嵌套文档的时间或多或少为某个日期
- 无法格式化keystone.js中的嵌套日期字段
- 如何恢复嵌套的 JSON 日期/时间
- 将日期选取器添加到嵌套表单域
- 按日期对嵌套的对象数组进行排序
- D3嵌套格式设置日期不正确