2014-07-02 11 views
9

Próbuję połączyć komponenty sieciowe polimerów w mojej aplikacji Angular, ale nie mogę uzyskać dwukierunkowego powiązania danych między tymi ramami działa. Oglądałem już this video i już wypróbowałem rozwiązanie dostarczone w this question, ale nadal nie działa dla mnie. Były to moje próby:Dwuwrożne wiązanie danych polimerowych dla komponentów szkieletowych (elementy podstawowe/elementy z papieru)

  • Object wartość atrybutu

    <game-card game="{{game}}" bind-polymer></game-card> - na podstawie post-card.html na tutorialu Polymer. game to obiekt o id, tytuł, itp

    stworzyłem funkcję gameChanged na elemencie internetowej i dodać nową właściwość w zmiennej game, coś jak this.game.foo = 'bar';, ale jeśli to zrobię

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

    zaraz po komponencie, nie ma "foo": "bar" w obiektach usztywnionych. Nawet

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

    to nie działa.

  • elementy ramowe

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

    To działa tylko wtedy, gdy edytować kod źródłowy elementu do reflect przypisują value (na core-input.html, jak papier-input rozciąga niego). Myślę, że to nie jest dobry sposób na rozwiązanie tego problemu.

Czy brakuje mi czegoś? Czy istnieje dobry zasób, na który mogę poszukać tej integracji z Angular-Polymer? Wyszukiwanie w Google daje więcej wyników o the material niż o samej bibliotece i, gdy ją znajdziemy, większość z nich to zasoby "Polymer for Dart".

+0

Yep. Prawidłowa właściwość wartości wejściowej core musi być ustawiona na 'reflect: true', aby to działało (https://github.com/Polymer/core-input/blob/master/core-input.html#L161) . W przeciwnym razie atrybut nie zostanie zaktualizowany, a system powiązań danych Angular nigdy nie zauważy zmiany. Może zgłosić błąd? https://github.com/Polymer/core-input/issues/new – ebidel

+0

@edibel Miałem podobne problemy i czasami nie działa, nawet jeśli ustawione jest "reflect: true". – ipaul

+1

@ebidel - Złożę błąd tak szybko, jak to możliwe, dzięki za odpowiedź. Ale co z atrybutem typu Object? Czy nie ma dodawać do niego nowej właściwości, a jeszcze więcej z 'reflect: true'? Kolejną kwestią, do której doszedłem, jest to, że kiedy przekazuję zmienną 'game' do atrybutu, czasami mój składnik sieciowy otrzymuje obiekt js i czasami otrzymuje ciąg JSON, zmuszając mnie do' JSON.parse' go. – danguilherme

Odpowiedz

1

Spróbuj z modułem NG Polymer Elements, który rozwiązuje dwukierunkowe wiązanie danych kątowych i polimerowych (elementy rdzeniowe i papierowe) oraz inne elementy, które zrywają z kątem/polimerem, ma również dokumentację addyour własnych niestandardowych elementów polimerowych kątowej wiązania pomocy

NG Polymer Elements

+0

To wydaje się być dobrą biblioteką, wkrótce spróbuję i zobaczę, czy to rozwiąże problem (nawet jeśli nie będę już używał polimeru). – danguilherme

+0

Jeśli już nie zamierzasz robić polimeru ... i naprawdę rozumiem dlaczego (jego bolesny rozwój w tym) jest to bardzo dobra alternatywa, prawie każde piękno polimeru w prosty sposób bootstrap :) [link] (http : //fezvrasta.github.io/bootstrap-material-design/) – Strife86

Powiązane problemy