2014-01-28 4 views
1

Я пытаюсь создать очень простой пример с platform.js Google полимера, но я получаю следующее сообщение об ошибке: Uncaught TypeError: Cannot read property '_polyfilled' of undefinedНеопределенный _polyfilled при использовании платформы Google Polymer?

Вот что я пытаюсь сделать:

<current-date></current-date> 

<script> 
    document.registerElement('current-date', { 
     prototype: { 
      createdCallback: function() { 
       this.innerHTML = new Date(); 
      } 
     } 
    }); 
</script> 

http://jsbin.com/uwUxeYA/1/edit

Обратите внимание, что этот код отлично работает в Google Canary без загрузки platform.js. Я неправильно использую polyfill для других браузеров (последние Chrome, Firefox и т. Д.)?

ответ

2

Вы не правильно создаете прототип. В таком виде она должна быть:

document.registerElement('current-date', { 
    prototype: Object.create(HTMLElement.prototype, { 
    createdCallback: { 
     value: function() { 
     this.innerHTML = new Date(); 
     } 
    } 
    }) 
}); 

ИМО, гораздо более разборчивыми форма:

var proto = Object.create(HTMLElement.prototype); 
proto.createdCallback = function() { 
    this.innerHTML = new Date(); 
}; 
document.registerElement('current-date', {prototype: proto}); 

Работа демо: http://jsbin.com/uwUxeYA/3/edit

+0

Спасибо это работает! И спасибо за статью !!! :) – TruMan1