2014-07-02 9 views
9

Sto cercando di unire i componenti web Polymer nella mia applicazione Angular, ma non riesco a ottenere l'associazione dati bidirezionale tra questi quadri funzionanti. Ho già visto this video e ho già provato la soluzione fornita in this question ma non funziona ancora per me. Questi erano i miei tentativi:Associazione dati a due vie polimerico-angolare per componenti di struttura (elementi di base/elementi di carta)

  • Object valore di attributo

    <game-card game="{{game}}" bind-polymer></game-card> - sulla base post-card.html sul tutorial Polymer. game è un oggetto con id, titolo, ecc

    ho creato la funzione gameChanged sul componente web e aggiunto una nuova proprietà nella variabile game, qualcosa come this.game.foo = 'bar';, ma se lo faccio

    <pre><code>{{game | json}}</code></pre>

    subito dopo il componente, non c'è "foo": "bar" nell'oggetto con stringhe. Anche con

    publish: { game: {reflect: true} },

    non funziona.

  • componenti Framework

    <core-input value="{{cool}}" bind-polymer></core-input> <paper-input value="{{cool}}" bind-polymer></paper-input>

    Funziona solo se modificare il codice sorgente dell'elemento a reflect l'attributo value (su core-input.html, come carta-input estende). Penso che non sia un buon modo per risolvere questo problema.

Mi manca qualcosa? C'è una buona risorsa posso cercare questa integrazione di Angular-Polymer? La ricerca su Google porta più risultati su the material che sulla libreria stessa e, quando trovati, la maggior parte di essi sono risorse "Polymer for Dart".

+0

Sì. È necessario che la proprietà del valore di core-input sia impostata su 'reflect: true' affinché funzioni (https://github.com/Polymer/core-input/blob/master/core-input.html#L161) . In caso contrario, l'attributo non verrà aggiornato e il sistema di associazione dei dati di Angular non vedrà mai una modifica. Forse presentare un bug? https://github.com/Polymer/core-input/issues/new – ebidel

+0

@edibel Ho avuto problemi simili e a volte non funziona anche se è impostato "reflect: true". – ipaul

+1

@ebidel - Inserirò un bug il prima possibile, grazie per la risposta. Ma per quanto riguarda l'attributo di tipo 'Object'? Non dovrebbe aggiungere la nuova proprietà ad esso, ancora di più con 'reflect: true'? Un altro problema che ho riscontrato è che quando passo la variabile 'game' all'attributo, a volte il mio componente web riceve un oggetto js e talvolta riceve una stringa JSON, costringendomi a' JSON.parse' it. – danguilherme

risposta

1

Provare con NG Polymer Elements lib it risolve il binding di dati a 2 vie di angolare e polimero (elementi nucleo e carta) e alcune altre cose che si rompono con angolare/polimero, ha anche la documentazione per aggiungere i propri elementi polimerici personalizzati al supporto angolare legame

NG Polymer Elements

+0

Questa sembra essere una buona soluzione, ci proverò presto e vedremo se risolve il problema (anche se non userò più il polimero). – danguilherme

+0

Se non hai intenzione di fare più polimeri .... e ho davvero capito perché (è doloroso sviluppare in questo) questa è un'ottima alternativa, quasi ogni bellezza di polimero in un modo semplice bootstrap :) [link] (http : //fezvrasta.github.io/bootstrap-material-design/) – Strife86

Problemi correlati