【问题标题】:2 way data-binding between a polymer component and a model?聚合物组件和模型之间的 2 路数据绑定?
【发布时间】:2014-12-31 12:17:48
【问题描述】:

在使用 Polymer 之前,我想检查是否可以在组件和 javascript 模型之间进行 2 路数据绑定。我阅读了网站上的数据绑定部分,但我仍然不清楚这一点。

一个简单的例子:如果我有一个带有“音量”属性的“音频”模型,例如,我可以将此音量属性绑定到滑块吗?

我对 JavaFx 比较熟悉,这里通常是可以解决问题的 JavaFx 代码:slider.valueProperty().bindBidirectional(audio.volumeProperty())。 执行后,用户对滑块所做的任何更改都会反映到模型上,应用程序对模型所做的任何更改也会反映到滑块上。

所以现在在 javascript 中,如果我有 var audio = { volume: 75, ... },是否可以将此模型的 volume 属性绑定到例如纸滑块的值?

【问题讨论】:

    标签: polymer


    【解决方案1】:

    是的,这是可能的。 这里有一个示例,带有一个简单的模型:

    <template is="auto-binding">
      <paper-slider min="10" max="200" value="{{audio.volume}}"></paper-slider>
      <h1>Current volume: {{audio.volume}}</h1>
    </template>
    
    <script>
      var audio = {volume: 42, stereo: true, title: "A beautiful song"};
    
      var template = document.querySelector('template[is="auto-binding"]');
    
      template.audio = audio
    
      template.status =0;
      template.statusIsOn = function(value) {
        if (value.status >0)
          return value.count;
        return 0;
      };
    </script>
    

    你有一个工作的 Plunker:http://plnkr.co/edit/YkyHRIn9ETrNz0vGTPK6?p=preview

    如果您需要更多信息,请随时询问!

    【讨论】:

    • 它有效,谢谢。只是关于滑块的一个细节:它仅在鼠标释放时更新模型,是否可以在拖动时更新模型?
    • 不确定,我去搜索一下,我会告诉你的:)
    猜你喜欢
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多