Polymer 从聚合物对象属性值设置属性

Polymer 从聚合物对象属性值设置属性,polymer,polymer-1.0,Polymer,Polymer 1.0,我有一个元素,我把它和它的数据放在它的对象中 <my-element data="{{item.content}}"></my-element> 我还必须单击子元素上的handler,它应该切换布尔值 _handleClickBlock: function () { this.data.active = !this.data.active; } 我需要将元素上的[active]属性设置为data.active值并每次进行更改,因为我在CSS样式中使用它,如:hos

我有一个元素,我把它和它的数据放在它的对象中

<my-element data="{{item.content}}"></my-element>
我还必须单击子元素上的handler,它应该切换布尔值

_handleClickBlock: function () {
  this.data.active = !this.data.active;
}
我需要将元素上的
[active]属性设置为
data.active
值并每次进行更改,因为我在CSS样式中使用它,如
:host[active]…

我怎样才能做到呢?我在事件处理程序中尝试了
this.setAttribute('active',this.data.active)
,但它只更改了一次值;控制台日志正在切换

编辑:

我已尝试使用此代码:

observers: [
    '_activeChange(data.active)'
],

_activeChange: function(newValue) {
    this.active = newValue;
    console.log("change");
},

_handleClickBlock: function () {
    console.log("------ click");
    this.data.active = !this.data.active;
    console.log(this.data.active);
}
但在我的控制台中,输出只是这个,所以不调用观察器

------ click
false
------ click
true

尝试将“active”作为属性包含在my元素中,并将reflectToAttribute设置为true

properties: {
  data:{...}
  active: {
    type: Boolean,
    reflectToAttribute: true
  }
}
observers: [
  '_activeChange(data.active)'
],
_activeChange: function(newValue) {
  this.active = newValue;
}
编辑:请检查如何更改路径,以便通知观察者。您需要更新data.active,如下所示

this.set('data.active', !this.data.active);
下面是jsbin:

我已将编辑添加到我的问题中。我以前尝试过这个解决方案,但“观察者”似乎不起作用。它只在页面加载时工作一次。
this.set('data.active', !this.data.active);