聚合物更换的观察器不会触发

Polymer changed watcher won't fire

本文关键字:观察 聚合物      更新时间:2023-09-26

我正在使用自定义元素中的核心选择器元素来管理其他自定义元素的选择。 我目前正在为"核心选择"添加一个事件侦听器,然后更改另一个对象属性。 由于某种原因,对象更改的观察程序在发生此更改时不会触发。 有人可以解释为什么吗?

法典:

Polymer('custom-elem',{
     selected: {},
     created: function(){
     this.selected = {
        value: null,
        reflect: true
      }
      },
     ready: function(){
        this.addEventListener('core-select', function(e){
          if (e.detail.item.active != null){
            this.selected.value = e.detail.item.name;
            //logging displays the correct value
            console.log(this.selected.value);
          }
        });
      },
      selectedChanged: function(){
        //never fires
        console.log('working');
      }
});

我也尝试实现相同的代码,但观察者监视核心选择选择项目,选定索引,选定模型属性,该属性也从未触发。

编辑:刚刚使用核心菜单实现了相同的功能,该菜单在核心选择上触发了一个函数。 所述函数更改 selected.value 属性。 选定更改仍然没有被调用。

任何帮助表示赞赏。

我认为

,假设您的事件处理程序确实被调用,当您更改监视对象的属性时,Polymer 不会监视属性的变化。您需要使用观察者块:

observe: {
  'selected.value': 'selectedChanged'
},