如何不在 Polymer 中观察到的 属性 中调用更改通知?
How to don't invoke the change notification in a observed property in Polymer?
我有一个 属性 ("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>
"resetToggleChecked" 是用未知值调用的,我必须确保 "toggleChecked" 被更改而没有 "some stuff"。
只有当我用鼠标按下切换键时,我才必须执行 "some stuff"。
有没有办法在不调用观察函数的情况下更改 属性?
检查 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"
我有一个 属性 ("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>
"resetToggleChecked" 是用未知值调用的,我必须确保 "toggleChecked" 被更改而没有 "some stuff"。 只有当我用鼠标按下切换键时,我才必须执行 "some stuff"。
有没有办法在不调用观察函数的情况下更改 属性?
检查 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"