javascript - 函数属性不是 Polymer 中的函数
问题描述
我正在为我的项目使用 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");
}
});
解决方案
您能否提供有关您想要实现的目标的更多详细信息,因为将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');
推荐阅读
- javascript - 样式未添加到表格中
- sapui5 - 如何对 fiori 应用程序中的会话超时做出反应?
- python - python numpy ndArray根据第n列中的值替换前n-1列中的值
- python - 使用一个数据框(用作字典)填充主数据框(Python、Pandas)
- c# - 当应用程序在 Amazon Windows 服务器上运行时线程不启动
- java - 如何使用 Selenium(Java/Python)在网页上查找某些文本是否突出显示和下划线?
- sql - 嵌套 SQL 选择 - 相同的选择以获得更深的结果
- php - 带有证书文件的 CURL api 调用
- node.js - DynamoDB 元素未显示在 React 应用 Material-Table 中
- c# - 处理 LINQ 表达式...失败。这可能表示 EF Core 中的错误或限制