如何在 Polymer 1.0 中取消绑定 属性
How to unbind property in Polymer 1.0
在 Polymer 1.0 中,我们可以将元素 属性 绑定到变量:
<paper-textarea id='area' value={{some_variable}}></paper-textarea>
如何解绑?
以下是对我不起作用的解决方案。当 some_variable
发生变化时,它会更新面积值。
this.$.area.value = "foo";
并不是 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 了解更多信息。
您无法动态绑定 and/or 取消绑定到 Polymer 1.0 中的元素属性,因为绑定是在元素 注册 期间烘焙的,而不是在 created/ready/attached 期间.参考
老实说,我不太确定你的用例是什么;但是,您很可能可以通过以下方式实现它:a) 将 value
属性绑定到 计算函数 ;或 b) 绑定到虚拟变量
<paper-textarea id='area' value={{letsCompute(some_variable)}}></paper-textarea>
...
letsCompute: function (v) {
//return your logic to bind or unbind
},
...
在 Polymer 1.0 中,我们可以将元素 属性 绑定到变量:
<paper-textarea id='area' value={{some_variable}}></paper-textarea>
如何解绑?
以下是对我不起作用的解决方案。当 some_variable
发生变化时,它会更新面积值。
this.$.area.value = "foo";
并不是 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 了解更多信息。
您无法动态绑定 and/or 取消绑定到 Polymer 1.0 中的元素属性,因为绑定是在元素 注册 期间烘焙的,而不是在 created/ready/attached 期间.参考
老实说,我不太确定你的用例是什么;但是,您很可能可以通过以下方式实现它:a) 将 value
属性绑定到 计算函数 ;或 b) 绑定到虚拟变量
<paper-textarea id='area' value={{letsCompute(some_variable)}}></paper-textarea>
...
letsCompute: function (v) {
//return your logic to bind or unbind
},
...