2014-07-02 54 views
9

我想在我的Angular應用程序中混合Polymer Web組件,但我無法獲得雙向數據綁定這些框架之間的工作。我已經觀看了this video,並且已經嘗試了this question中提供的解決方案,但它仍然不適用於我。這是我的嘗試:框架組件(核心元素/紙張元素)的聚合物角度雙向數據綁定

  • Object屬性值

    <game-card game="{{game}}" bind-polymer></game-card> - 基於post-card.html聚合物教程。 game是ID,標題等

    我創建的Web組件上的gameChanged功能,並在game變量添加了一個新的屬性,像this.game.foo = 'bar';的對象,但如果我不

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

    緊跟在組件後面,字符串化對象中沒有"foo": "bar"。即使

    publish: { game: {reflect: true} }

    這是行不通的。

  • 框架組件

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

    如果我編輯元件的源代碼reflectvalue屬性(上core-input.html,紙輸入延伸它)它僅適用。我認爲這不是解決這個問題的好方法。

我錯過了什麼嗎?有沒有很好的資源可以尋找這種角聚合物集成?在Google上搜索帶來的關於the material的更多結果要比關於圖書館本身的結果多得多,其中大部分結果都是「Polymer for Dart」資源。

+0

是的。很確定核心輸入的值屬性需要設置爲'reflect:true'才能工作(https://github.com/Polymer/core-input/blob/master/core-input.html#L161) 。否則,該屬性將不會更新,並且Angular的數據綁定系統將永遠不會看到更改。也許提出一個錯誤? https://github.com/Polymer/core-input/issues/new – ebidel

+0

@edibel我有類似的問題,即使設置了「reflect:true」,它有時也不起作用。 – ipaul

+1

@ebidel - 我會盡快提交一個錯誤,謝謝你的迴應。但是'Object'類型屬性呢?它是不是應該添加新的屬性呢,甚至更多地用'reflect:true'? 我遇到的另一個問題是,當我將'game'變量傳遞給屬性時,有時我的web組件會收到一個js對象,有時它會收到一個JSON字符串,迫使我將其設爲'JSON.parse'。 – danguilherme

回答

1

嘗試與NG聚合物元素lib它解決角和聚合物(核心和紙元素)和一些其他東西的角度/聚合物打破的數據綁定,它也有文檔添加自己的定製聚合物元素到角度綁定支持

NG Polymer Elements

+0

這似乎是一個很好的庫,將盡快嘗試,看看它是否解決了問題(即使我不再使用聚合物)。 – danguilherme

+0

如果你不打算再做聚合物....我真的明白爲什麼(它的痛苦發展),這是一個非常好的選擇,幾乎每一個簡單的引導聚合物美容方式:) [鏈接](http ://fezvrasta.github.io/bootstrap-material-design/) – Strife86