我正在编写一个新版本的chrome extision,但遇到了麻烦。
这是我的元素代码:Element code
在第32行,我要调用自定义方法willUpdateBackground
,控制台告诉我方法是undefined
。代码如下。
Polymer({
is: 'pure-newtab',
ready: function() {
console.dir(this.$.background);
this.$.background.willUpdateBackground('color', '#333');
// This line get error, 'willUpdateBackground' is undefined
}
});
定义
Polymer({
is: 'pure-background',
ready: function () {
},
willUpdateBackground: function(type, imageOrColor) {
console.log(type);
console.dir(this);
}
});
但是如果我存储了这个对象,在控制台中我可以调用temp1.willUpdateBackground
,这就是它的问题。
屏幕截图:http://i.stack.imgur.com/OTLgw.png
修复和问题再次发生
我将自定义方法调用移动到attached
回调,在某些环境中,ready
函数中的元素未就绪。
在我修复之后,它再次发生:在attached
方法中,再次调用失败,并将其移动到异步调用,延迟100ms,问题再次消失。这不是一个可靠的解决方案,我仍然找到出路。
this.async(function () {
this.$['background'].updateBackground('rgba(255,128,0,1)', 'url(https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png)');
}, 100);
答案 0 :(得分:1)
我尝试将你的代码粘贴到这个jsbin中它运行得很好......(我评论了你的console.dir()并添加了一些我自己的console.log(),但这就是我的全部内容。做到了) http://jsbin.com/tomewigobu/1/edit?html,console,output
我建议您检查一下您的聚合物版本是否已更新,应该有所帮助。