我在我的项目中使用Polymer框架,我在其中声明属性中的函数回调并尝试从另一个函数调用它。但在访问它时我收到了一个错误:
未捕获的TypeError:this.callback不是函数
请看一下。
Polymer({
is: "parent-dom",
properties: {
people: {
type: String,
value: "df"
},
item: {
type: String,
value: "asdf",
notify: true
},
callback: {
type: Object,
value: function(index) {
console.log("Inside callback function");
}
},
},
showTargetColorDialog: function(e) {
this.callback("sadf");
}
});
答案 0 :(得分:1)
请您提供有关您希望实现的内容的更多详细信息,因为将 Polymer属性指定为函数这不是很常见的情况吗?
因此,您可以在元素上声明公共方法,就像使用showTargetColorDialog
一样,并且可以像以下一样调用它们:
document.querySelector('parent-dom').showTargetColorDialog();
但同样,它不是那种“聚合物方式”。
要回答原始问题,如果您确实需要将回调设置为Polymer属性(我仍然不确定原因),但您可以:
callback: {
type: Object,
value: function() {
return function(index) {
console.log("Inside callback function ", index);
};
}
},
然后您就可以致电this.callback('something');