JavaScript 调试器显示对象属性的双冒号,Handlebars 无法呈现

Posted

技术标签:

【中文标题】JavaScript 调试器显示对象属性的双冒号,Handlebars 无法呈现【英文标题】:JavaScript debugger shows double colons for object property, Handlebars fails to render 【发布时间】:2014-03-22 14:00:20 【问题描述】:

我有这个车把模板:

<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 不见了,双冒号是什么意思?

【问题讨论】:

粘贴创建内容的对象。 【参考方案1】:

javascript 对象可以在其属性之一的名称中包含冒号(或几乎任何字符):

var a = "message:": "hello";
console.log(a);

结果:

Object message:: "hello"

听起来这就是你所拥有的。当您创建对象时,您是否可能在某处有一个杂散的冒号?

【讨论】:

其实就是这样,奇怪的是我之前没有注意到这一点。谢谢!【参考方案2】:

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

【讨论】:

以上是关于JavaScript 调试器显示对象属性的双冒号,Handlebars 无法呈现的主要内容,如果未能解决你的问题,请参考以下文章

Pig中的双冒号到底是啥意思?

“::before”和“:before”中的双冒号和单冒号的区别

Java 中的双冒号“::”

java :: Java中的双冒号操作符

c语言的双冒号是啥意思::

参数扩展的双冒号有什么作用?