2014-11-15 15 views
6

Voglio passare i dati che ho su una variabile a un componente Polimero tramite l'attributo.Come passare i dati dal codice JavaScript all'elemento personalizzato Polymer?

Questo è il codice:

<script> 
    var item1 = { 
     title: "Title 1", 
     status: "accepted" 
    }; 
</script> 

<bm-card item="{{item1}}" otherAttribute="hello"> 

Il otherAttribute ottiene i dati sull'elemento personalizzato ma voce non arriva.

Come potrebbe voce attributo essere popolato dalla variabile item1?

risposta

4

Per utilizzare al di fuori di associazione dati di <polymer-element> è necessario <template is="auto-binding">: https://www.polymer-project.org/docs/polymer/databinding-advanced.html#bindingoutside

Tuttavia, si può solo impostare la proprietà direttamente in js:

<bm-card otherAttribute="hello"> 

document.addEventListener('polymer-ready', function() { 
    document.querySelector('bm-card').item = item1; 
}); 

Il motivo si deve aspettare per di polimeri pronto è quello di garantire che l'elemento sia aggiornato nel DOM e che abbia le proprietà/i metodi definiti.

+0

Dopo aver letto la documentazione e il test, l'unico modo per passare i dati a un elemento polimerico è l'utilizzo di JavaScript. l'associazione automatica ha ancora bisogno di JS per inviare i dati. – jordiburgos

+0

Sì, qualcosa deve legare il mondo js al mondo HTML. – ebidel

+0

È fatto "automagicamente" in AngularJS, preferirei qualcosa del genere. – jordiburgos