2016-09-13 6 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.valueを設定しようとすると、thisが実際のデータではない要素です。私はポリマーのプロパティ "値"をzの値に設定したいと思います。これどうやってするの?必要であれば、ここで

registerCallback()です:

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

答えて

2

  • それを行うための2つの方法がありますが、すでにthiscallback内部の異なる意味を持って知っているように、一つの方法は、になります他の変数の中に(ポリマー要素)を格納する

    var self=this; 
    registerCallback(function(){ 
        self.data = some value 
    }) 
    
  • 2番目のオプションは、あなたのコールバックでbindthisにある

    registerCallback(function(){ 
        this.data= some value 
    }.bind(this)); 
    
関連する問題