为什么在Polymer中使用主机属性?

时间:2016-01-05 05:16:08

标签: polymer-1.0

我目前正在阅读有关host attributes的Polymer文档, 从写的内容来看,似乎没有任何可靠的推理。

这是我可以从文档中扣除的唯一声明:

  

如果自定义元素在创建时需要在其上设置HTML属性,请使用hostAttributes

这对我来说实用性没有多大意义。

有人可以进一步详细说明这个话题吗?或链接到其网站上的更详细文档(如果存在)。

编辑:我还读到,他们不应该被误认为属性,并且有一个特殊的双向数据绑定表示法。

1 个答案:

答案 0 :(得分:0)

这是一个令人遗憾的文档略显简洁的案例。 Polymer元素上的hostAttributes与元素上的常规属性不同,因为它们在创建时在元素上设置。根据{{​​3}}(自您提出此问题以来已更新):

  

在以下情况下,元素已准备就绪:

     
      
  • 已配置其属性值,其值从父项数据绑定,从属性值反序列化,或设置为其默认值。
  •   

这里需要注意的重要细节是元素的属性在元素的创建时间之后和ready回调之前设置hostAttributescreated回调之前设置,即。在创作期间。

hostAttributes的行为与本机html元素上与Polymer数据绑定有关的行为相同。 "特殊符号",attr$="value"就是这样:

<!-- Polymer element -->
<my-el normal-property="[[myData1]]" host-attr$="[[myData2]]"></my-el>

<!-- Native element -->
<div hidden$="[[setDivHidden]]"></div>
  

为什么在Polymer中使用主机属性?

您可能希望在创建元素后直接使用这些属性。它还将属性的语义传达为静态。

the docs