【问题标题】:How to unbind property in Polymer 1.0如何在 Polymer 1.0 中取消绑定属性
【发布时间】:2015-07-02 14:58:43
【问题描述】:

在 Polymer 1.0 中,我们可以将元素属性绑定到变量:

<paper-textarea id='area' value={{some_variable}}></paper-textarea>

如何解除绑定?

以下是对我不起作用的解决方案。当some_variable 更改时,它会更新区域值。

this.$.area.value = "foo";

【问题讨论】:

  • Polymer API 目前不公开任何方法来取消绑定值。也许如果您详细说明您的情况,我们可以为您提供替代解决方案?
  • 我将 textarea 与 Iron-ajax 响应绑定。我试图实现的是定期更新 textarea 值,但在用户输入焦点时禁用更新(以防止覆盖用户输入的数据)我的解决方案是使用响应事件处理响应,并由标志决定值是否应该不是更新者。标志在 textarea 的 on-focus/on-blurr 事件中控制。

标签: javascript binding polymer polymer-1.0


【解决方案1】:

您不能动态绑定和/或取消绑定到 Polymer 1.0 中的元素属性,因为绑定是在元素注册期间烘焙的,而不是在创建/准备好/附加期间。参考Binding imperatively

老实说,我不确定您的用例是什么;但是,您很可能可以通过以下方式实现它: a) 将您的 value 属性绑定到 计算函数;或 b) 绑定到虚拟变量

<paper-textarea id='area' value={{letsCompute(some_variable)}}></paper-textarea>

...

letsCompute: function (v) {
  //return your logic to bind or unbind
},
...

【讨论】:

    【解决方案2】:

    您想要实现的目标并不是 100% 清楚,但使用 Polymer,您可以进行单向数据绑定。

    向下绑定:

    <script>
      Polymer({
        is: 'custom-element',
        properties: {
          prop: String    // no notify:true!
        }
      });
    
    </script>
    
    ...
    
    <!-- changes to "value" propagate downward to "prop" on child -->
    <!-- changes to "prop" are not notified to host due to notify:falsey -->
    <custom-element prop="{{value}}"></custom-element>
    

    向上绑定:

    <script>
      Polymer({
        is: 'custom-element',
        properties: {
          prop: {
              type: String,
              notify: true,
              readOnly: true
            }
        }
      });
    </script>
    
    ...
    
    <!-- changes to "value" are ignored by child due to readOnly:true -->
    <!-- changes to "prop" propagate upward to "value" on host  -->
    <custom-element prop="{{value}}"></custom-element>
    

    查看documentation 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      • 2015-08-22
      相关资源
      最近更新 更多