Data binding 聚合:数据绑定语法属性名称\$的用途是什么?

Data binding 聚合:数据绑定语法属性名称\$的用途是什么?,data-binding,polymer,Data Binding,Polymer,我遇到了一些我不懂的语法。解释数据绑定的两种不同语法: 一个用于绑定到属性: prop name=… 一个用于绑定属性(例如href,src,style等): attr name$=… 为了从现有组件的源代码中学习,我已经访问了结构name\$=…,到目前为止,我还没有找到任何关于这是什么的文档 例如,标签元素上的隐藏属性具有以下数据绑定: <label hidden\$="[[!label]]" ... >[[label]]</label> [[label]]

我遇到了一些我不懂的语法。解释数据绑定的两种不同语法:

  • 一个用于绑定到属性:
    prop name=…
  • 一个用于绑定属性(例如
    href
    src
    style
    等):
    attr name$=…
为了从现有组件的源代码中学习,我已经访问了结构
name\$=…
,到目前为止,我还没有找到任何关于这是什么的文档

例如,
标签
元素上的
隐藏
属性具有以下数据绑定:

<label hidden\$="[[!label]]" ... >[[label]]</label>
[[label]]
hidden
甚至不在列表中(尽管该列表可能不完整)。所以我觉得自己被困在这里了


为什么这个
隐藏\$=…
(即带有反斜杠)而不仅仅是
隐藏的$=…“
(没有反斜杠)或
隐藏的\$=…(没有反斜杠和美元符号)?这个语法做什么?它是用来做什么的?

一个数据绑定作为HTML属性出现在本地DOM模板中:


属性名称=注释或复合绑定
属性名称$=注释或复合绑定

绑定的左侧标识目标属性或属性

要绑定到属性,请使用属性形式中的属性名称(破折号大小写而不是camelCase),如属性名称到属性名称映射中所述:


此示例绑定到目标属性myProperty on

要改为绑定到属性,请使用属性名称后跟$:



反斜杠只是一个转义字符(在本例中是$,这是不必要的,我不知道他们为什么使用它)。您可以尝试粘贴
`[[label]]`
在控制台中查看结果。@user-28:啊,当然!它在一个模板文本中,哦!在阅读了之后,我想我也明白了他们为什么这样做:在一个模板文本中,
$
可能会启动一个表达式插值(
${…}
),反斜杠阻止了这一点。我猜是一个代码生成工具创建了这个人工制品(就像一些SQL生成器总是引用表名和列名,无论是否必要,只是为了安全)。