JavaScript调试器显示对象属性为双冒号,Handlebars无法渲染

JavaScript debugger shows double colons for object property, Handlebars fails to render

本文关键字:Handlebars 显示 调试器 对象 属性 JavaScript      更新时间:2023-09-26

我有这个车把模板:

<p class="text-muted">{{ date }} {{ time }} {{ message }}</p>
{{log this}}

在控制台中呈现它会给我这个日志:

Object
date: "2014-03-22"
message:: "ABC"
time: "01:10:07"
__proto__: Object

注意message::,我在Firefox和Chrome中都得到双冒号。我认为这很重要,因为这是我渲染的输出:

<p class="text-muted">2014-03-22 01:10:07  </p>

为什么缺少message,双冒号是什么意思?

JavaScript对象可以在其属性名中使用冒号(或任何字符):

var a = {"message:": "hello"};
console.log(a);
结果:

Object {message:: "hello"}

听起来这就是你那里的东西。在创建对象时,是否在某个地方出现了一个冒号?

大胆猜测:您的消息实际上在消息键下吗?是否有可能消息值是一个空字符串,并且包含消息的行的键也是一个空字符串?如果包含格式化为JSON的消息对象,解决这个问题会更容易。