Polymer 如何打印聚合物对象的内容(属性)?
我有点惊讶,我还没有找到一个解释来解释如何做到这一点,因为它似乎是调试的基本要素,但我找不到任何地方如何在Polymer中打印对象的属性 我在学习聚合物,我经常遇到这样的情况:我有一个对象,但我不知道对象的属性是什么。(例如,我打印到窗口,得到[object object]。我找到了一些关于如何打印对象的键/属性列表的说明(如果我知道这些键是什么,我知道如何打印这些键的值),但如果我还不知道数据的格式,我不知道如何获取密钥。每个示例都假定您已经知道属性是什么 我看到一些解决方案建议添加如下脚本:Polymer 如何打印聚合物对象的内容(属性)?,polymer,polymer-1.0,Polymer,Polymer 1.0,我有点惊讶,我还没有找到一个解释来解释如何做到这一点,因为它似乎是调试的基本要素,但我找不到任何地方如何在Polymer中打印对象的属性 我在学习聚合物,我经常遇到这样的情况:我有一个对象,但我不知道对象的属性是什么。(例如,我打印到窗口,得到[object object]。我找到了一些关于如何打印对象的键/属性列表的说明(如果我知道这些键是什么,我知道如何打印这些键的值),但如果我还不知道数据的格式,我不知道如何获取密钥。每个示例都假定您已经知道属性是什么 我看到一些解决方案建议添加如下脚本:
getKeys : function(o){
return Object.keys(o);
}
然后他们推荐这样的东西:
<template is="dom-repeat" items="{{ item in obj | getKeys}}">
{{item}}
</template>
这里有一个推荐的策略。我知道我可以深入研究文档,并尝试了解应该得到什么样的响应,但我更好奇的是,对于这种情况,一般策略是什么-我多次想检查聚合物是如何建模的,而不是我认为它是如何建模的。您提到的ost推荐了一种在post-1.0 Polymer中不再可能使用的方法,该方法不支持过滤/管道语法(从当前版本1.5.0开始) 您可以使用DevTools选择聚合元素,然后运行。这在以下浏览器(可能是较旧版本)中有效:
- 铬50
- 火狐45
- Safari 9.1
- 歌剧39
HtmleElement
),因此在一长串键中扫描特定于聚合物的属性可能会很繁琐。然而,Firefox和Safari先列出特定于聚合物的键,然后再列出继承的键
Chrome/Opera的一个解决方法是使用以下代码段:
((o) => {
let obj = {};
Object.keys(o).sort().forEach((x) => {
obj[x] = o[x];
});
console.dir(obj);
})($0);
这里有一个用于记录纸张按钮的属性的对话框。您不需要单击该按钮。打开浏览器的控制台日志(而不是Codepen控制台)以查看下面的屏幕截图。您可以展开控制台日志中的字段以查看聚合物对象的属性
我一直使用的解决方案如下:
在可见页面的某个位置放置一个按钮
点击该按钮后,将对象打印到控制台
my-element.html
<button on-tap="show">Click here to see user</button>
...
show: function() {
console.log('user', this.user);
},
...
单击此处查看用户
...
show:function(){
console.log('user',this.user);
},
...
您还可以使用控制台.dir()
如下所示
<my-element id="foo"></my-element>
...
bar: function() {
console.dir( this.$.foo );
}
...
bar:function(){
console.dir(this.$.foo);
}
我试着运行你的代码笔,那里的控制台显示了字符串“查看浏览器的控制台日志”,但当我点击纸按钮时,没有显示任何其他内容。:-(你打开浏览器的控制台了吗?(不是代码笔中的控制台)我已经用说明更新了演示,并更新了答案以澄清。
<my-element id="foo"></my-element>
...
bar: function() {
console.dir( this.$.foo );
}