2015-07-02 179 views
1

解除綁定屬性在聚合物1.0,我們可以一個元素屬性綁定到一個變量:如何在聚合物1.0

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

我怎麼能拆散呢?

下面是一個不適合我的解決方案。當some_variable更改它時更新面積值。

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

Polymer API目前不公開任何方法來解除綁定值。也許如果你詳細闡述你的情況,我們可以爲你提供一個替代解決方案? – Zikes

+0

我有textarea與鐵ajax響應綁定。我試圖實現的是定期更新textarea的值,但在用戶重點輸入時禁止更新(以防止覆蓋用戶輸入的數據)我的解決方案是處理響應與響應事件,並在那裏決定如果值應該更新不是。標誌在textarea的on-focus/on-blurr事件中被控制。 – Panchito91

回答

2

您不能在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 
}, 
... 
1

這是不是100%清楚你想達到什麼目的,但隨着聚合物可以做單向數據綁定。

向下綁定:

<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以獲取更多信息。