2016-09-13 60 views
0

用该聚合物元件定义:从回调访问聚合物组件属性?

<script> 
    Polymer({ 
     is: 'hello-world', 
     properties: { 
      dataId: { 
       type: String 
      }, 
      value: { 
       type: String 
      } 
     }, 
     ready: function() { 
      console.log(this.dataId); 
      registerCallback(this.dataId, function (data) { 
       var z = data.someValue; 
       this.value = z; 
      }); 
     } 
    }); 
</script> 

当试图设置this.valuethis实际上是数据,而不是元件。我想要它将聚合物属性“值”设置为z的值。我怎样才能做到这一点?

这里是registerCallback()如果需要的话:

function registerCallback(id, callback) { 
    callbackMap[id] = callback; 
} 

回答

2

这样做有两个方面,它

  • 正如你已经知道thiscallback内部有不同的含义这样一个方法是商店this(聚合物元素)里面的一些其他变量

    var self=this; 
    registerCallback(function(){ 
        self.data = some value 
    }) 
    
  • 第二个选项是bindthis与你的回调

    registerCallback(function(){ 
        this.data= some value 
    }.bind(this));