使用这种聚合物元素定义:
<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
实际上是数据,而不是元素。我希望它设置聚合物属性&#34;值&#34;到z的值。我怎么能这样做?
如果需要,这是registerCallback()
:
function registerCallback(id, callback) {
callbackMap[id] = callback;
}
答案 0 :(得分:3)
有两种方法可以做到这一点
正如您所知,this
在callback
中有不同的含义,因此一种方法是将this
(Polymer元素)存储在其他变量中
var self=this;
registerCallback(function(){
self.data = some value
})
第二个选项是使用您的回调<{1}} bind
this