聚合物dom绑定到属性

时间:2015-08-12 04:06:00

标签: polymer

我有这个自动绑定模板:

<template is="dom-repeat" items="[[row]]" as="item">
  <td violated=[[item.violated]] class="result-tb-data">[[item.value]]</td>
</template>

我不知道为什么item.value被正确绑定但[[item.violated]]没有绑定。该值存在,因为我尝试了反向绑定:

<td violated=[[item.value]] class="result-tb-data">[[item.violated]]</td>

我知道它没有绑定,因为我有这种风格:

.result-tb-data[violated=true] {
  font-style: italic;
}

item.violated是一个布尔字段。

以下是一个完整的例子:

<dom-module id="my-element">
  <style>
    span[violated="true"] {
      font-style: italic;
    }
  </style>

  <template>
    <span violated="{{violated}}">Text</span>
  </template>
</dom-module>

<script>
  Polymer({
    is: 'my-element',
    properties: {
      violated: {
        type: Boolean,
        value: true
      }
    }
  });
</script>

2 个答案:

答案 0 :(得分:2)

绑定到属性的正确语法包含$docs)。所以在你的情况下它应该是:

violated$=[[item.violated]]

答案 1 :(得分:1)

Maria是正确的,但是当我尝试你的例子时,我遇到了另一个问题。

这是你为属性而不是字符串设置布尔值。这有效:

<dom-module id="my-element">
  <style>   
    span[violated="true"] {
      font-style: italic; 
    }       
  </style>  

  <template>    
    <span violated$="{{violated}}">Text</span>
  </template>   
</dom-module>

<script>  
  Polymer({
    is: 'my-element',
    properties: {   
      violated: {
        type: String,
        value: "true" 
      }
    }
  });
</script>