纸质单选按钮未正确更新
paper-radio button does not update properly
我想创建一个公式,根据选择的用户类型,显示不同的字段。
为此,我在该组的 selected
属性 上设置了一个无线电组和一些数据绑定。
<paper-radio-group id="newUserTypeRadio" selected="{{newUserType}}">
<paper-radio-button name="admin">admin</paper-radio-button>
<paper-radio-button name="user">user</paper-radio-button>
<paper-radio-button name="guest">guest</paper-radio-button>
</paper-radio-group>
我的听众:
listeners: {
"newUserTypeRadio.change": "userTypeForm"
}
和函数,(目前)只是一个 console.log
userTypeForm: function () {
console.log("user type : ", this.newUserType);
}
是的,就是这样。问题是,当我第一次点击 "Admin" 单选按钮时,日志显示 undefined
,然后我点击 "guest",日志显示 "admin",等等......所以 selected
值始终是以前的值,而不是当前值。
有什么办法可以解决这个问题吗?
这是使用 observer
而不是 listener
实现的解决方案
<base href="https://polygit.org/components/">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link href="polymer/polymer.html" rel="import">
<link rel="import" href="paper-radio-group/paper-radio-group.html">
<link rel="import" href="paper-radio-button/paper-radio-button.html">
<dom-module id="radio-group">
<template>
<style></style>
<paper-radio-group id="newUserTypeRadio" selected="{{newUserType}}">
<paper-radio-button name="admin">admin</paper-radio-button>
<paper-radio-button name="user">user</paper-radio-button>
<paper-radio-button name="guest">guest</paper-radio-button>
</paper-radio-group>
</template>
</dom-module>
<script>
Polymer({
is: 'radio-group',
properties: {
newUserType: {
type: String,
observer: 'userTypeForm'
}
},
userTypeForm: function(newVal, oldVal) {
console.log("oldvalue:" + oldVal, ", current value:" + newVal, ", newUserType value:" + this.newUserType);
}
})
</script>
<radio-group></radio-group>
我想创建一个公式,根据选择的用户类型,显示不同的字段。
为此,我在该组的 selected
属性 上设置了一个无线电组和一些数据绑定。
<paper-radio-group id="newUserTypeRadio" selected="{{newUserType}}">
<paper-radio-button name="admin">admin</paper-radio-button>
<paper-radio-button name="user">user</paper-radio-button>
<paper-radio-button name="guest">guest</paper-radio-button>
</paper-radio-group>
我的听众:
listeners: {
"newUserTypeRadio.change": "userTypeForm"
}
和函数,(目前)只是一个 console.log
userTypeForm: function () {
console.log("user type : ", this.newUserType);
}
是的,就是这样。问题是,当我第一次点击 "Admin" 单选按钮时,日志显示 undefined
,然后我点击 "guest",日志显示 "admin",等等......所以 selected
值始终是以前的值,而不是当前值。
有什么办法可以解决这个问题吗?
这是使用 observer
而不是 listener
<base href="https://polygit.org/components/">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link href="polymer/polymer.html" rel="import">
<link rel="import" href="paper-radio-group/paper-radio-group.html">
<link rel="import" href="paper-radio-button/paper-radio-button.html">
<dom-module id="radio-group">
<template>
<style></style>
<paper-radio-group id="newUserTypeRadio" selected="{{newUserType}}">
<paper-radio-button name="admin">admin</paper-radio-button>
<paper-radio-button name="user">user</paper-radio-button>
<paper-radio-button name="guest">guest</paper-radio-button>
</paper-radio-group>
</template>
</dom-module>
<script>
Polymer({
is: 'radio-group',
properties: {
newUserType: {
type: String,
observer: 'userTypeForm'
}
},
userTypeForm: function(newVal, oldVal) {
console.log("oldvalue:" + oldVal, ", current value:" + newVal, ", newUserType value:" + this.newUserType);
}
})
</script>
<radio-group></radio-group>