【发布时间】: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>只有在我将 元素的源代码 编辑为
reflectvalue属性时它才有效(在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它。 -
你在使用第三方库吗?