2016-09-13 58 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));