我有一个属性(" toggleChecked")由切换按钮更改,当按下切换按钮时必须执行某些操作。 我需要重置切换值而不调用观察者函数。
<dom-module id="custom-element">
<template>
<paper-toggle-button checked="{{toggleChecked}}">Toggle</paper-toggle-button>
</template>
<script>
Polymer({
properties: {
toggleChecked: {
type: Object,
observer: 'toggleCheckedChanged'
}
},
toggleCheckedChanged: function(value) {
// do some stuff...
},
resetToggleChecked: function(value) {
// change the value, but don't activate the observer function!
this.toggleChecked = value; // ??
}
});
</script>
</dom-module>
&#34; resetToggleChecked&#34;使用未知值调用,我必须确保&#34; toggleChecked&#34;如果没有&#34;一些东西&#34;就会改变。 我必须做一些事情&#34;只有当我用鼠标按下切换按钮时。
有没有办法在不调用观察函数的情况下更改属性?
答案 0 :(得分:2)
检查documentation,paper-toggle-button
会发出两个不同的更改事件:
change
:由于用户互动而检查状态发生变化时触发。iron-change
:当检查状态发生变化时触发。如果仅将回调绑定到change
事件,则只有当用户输入中的按钮被激活切换时才会运行回调,而当基础值发生更改时,不。
<dom-module id="custom-element">
<template>
<paper-toggle-button
on-change="_onChanged"
checked="{{toggleValue}}">Toggle</paper-toggle-button>
</template>
<script>
Polymer({
properties: {
toggleValue: {
type: Boolean
}
},
_onChanged: function(event) {
// This is called only when the paper-toggle-button changes
// via user interaction.
// do some stuff...
},
resetToggleChecked: function(value) {
// This will cause the toggle's checked value to change
// without triggering the _onChanged handler.
this.toggleValue = value;
}
});
</script>
</dom-module>
修改:更正了错误的行: on-changed =“{{_ onChanged}}”: on-change =“_ onChanged”