如何调试Polymer项目1.x?

时间:2015-09-03 09:00:38

标签: debugging polymer polymer-1.0

debugging Polymer 0.5主站点的信息已经过时,不适用于 Polymer 1.0

我想看一些日志,所以我做了什么:

<script>
  window.Platform = {flags: {debug: true, log: 'bind,ready'}};    
</script>
<script src="/node_modules/webcomponents.js/webcomponents.js" debug></script>
<link rel="import" href="...">

导入内部:

<link rel="import" href="./bower_components/polymer/polymer.html">
<dom-module id="my-custom-element">...</dom-module>

点击网址:http://localhost:8080/index.html?debug&log=bind,ready,events 最后我在控制台上看不到任何日志。

调试Polymer 1.0 的正确方法是什么?

2 个答案:

答案 0 :(得分:7)

如果您正在调试属性(例如数据绑定),请阅读properties guide,并使用observers字段。这是一个例子:

Polymer({
  is: 'portfolios-foobar',

  properties: {
    portfolios: {
      type: Array,
      value: [],
      notify: true,
      reflectToAttribute: true,
      observer: 'logChange'
    }
  },
  logChange: function(newValue, oldValue) {
    console.log('Changed! To:', newValue);
  },

  addFolio: function(folio) {
      this.push('portfolios', folio);
    },

  observers: [
     'logFor(portfolios)',
     'hackyObserver1(portfolios.*)',
     'hackyObserver2(portfolios.splices)'
  ],

  logFor: function(newValue, oldValue) {
    console.log('LogFor! To:', newValue);
  },
  hackyObserver1: function(changes) {
    console.log('One!', changes);
  },
  hackyObserver2: function(changeRecord) {
    console.log('Two! Splices!', changeRecord);
  }
});

在连接Polymer之后,您可以:

Polymer.log = console.log.bind(console); // Not part of the public API, may be broken.

这将记录正在注册的元素名称。

答案 1 :(得分:1)

我希望这就是您所寻找的console.info();

您可以在https://www.polymer-project.org/1.0/docs/devguide/events&#34;事件重新定位&#34;

找到它

我会介绍代码示例,但他们已在文档中执行此操作。