【问题标题】:Polymer-Angular two-way data binding for framework components (core-elements/paper-elements)用于框架组件(核心元素/纸张元素)的 Polymer-Angular 双向数据绑定
【发布时间】:2014-08-22 17:25:37
【问题描述】:

我正在尝试在我的 Angular 应用程序中混合 Polymer Web 组件,但我无法让这些框架之间的双向数据绑定正常工作。我已经看过this video 并且已经尝试过this question 中提供的解决方案,但它仍然对我不起作用。这些是我的尝试:

  • Object属性值

    <game-card game="{{game}}" bind-polymer></game-card> - 基于 Polymer 教程中的 post-card.html。 game 是一个有id、title等的对象。

    我在 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>

    只有在我将 元素的源代码 编辑为 reflect value 属性时它才有效(在 core-input.html 上,因为纸张输入扩展了它)。我认为这不是解决这个问题的好方法。

我错过了什么吗?有没有很好的资源我可以寻找这个 Angular-Polymer 集成?在 Google 上搜索会带来更多关于 the material 的结果,而不是关于库本身的结果,并且在找到时,大部分都是“Polymer for Dart”资源。

【问题讨论】:

  • 是的。很确定 core-input 的 value 属性需要设置为 reflect: true 才能使其工作 (github.com/Polymer/core-input/blob/master/core-input.html#L161)。否则,属性不会更新,Angular 的数据绑定系统也永远不会看到变化。也许提交一个错误? github.com/Polymer/core-input/issues/new
  • @edibel 我也遇到过类似的问题,有时即使设置了“reflect: true”也不起作用。
  • @ebidel - 我会尽快提交错误,感谢您的回复。但是Object 类型属性呢?难道不应该向它添加新属性,甚至更多的是reflect: true?我遇到的另一个问题是,当我将game 变量传递给属性时,有时我的Web 组件会接收到一个js 对象,有时它会接收到一个JSON 字符串,这迫使我使用JSON.parse 它。
  • 你在使用第三方库吗?

标签: angularjs polymer


【解决方案1】:

尝试使用 NG Polymer Elements 库,它解决了 Angular 和聚合物(芯和纸元素)的 2 路数据绑定以及其他一些与 Angular/聚合物中断的东西,它还具有添加您自己的自定义聚合物元素的文档角度绑定支持

NG Polymer Elements

【讨论】:

  • 这似乎是一个不错的库,将尽快尝试,看看它是否解决了问题(即使我不再使用聚合物)。
  • 如果你不打算再做聚合物了....我真的明白为什么(开发它很痛苦)这是一个非常好的选择,几乎所有聚合物的美都以简单的引导方式:) link
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-03
  • 2014-06-21
  • 1970-01-01
相关资源
最近更新 更多