我的目标是对一组paper-checkbox进行分组。
对于paper-ratio-button,我正在做:
<paper-radio-group selected="foo">
<paper-radio-button name="foo">Foo</paper-radio-button>
<paper-radio-button name="bar">Bar</paper-radio-button>
</paper-radio-group>对于paper-checkbox,我应该使用iron-selector
<iron-selector attr-for-selected="name" selected="foo">
<paper-checkbox name="foo">Foo</paper-checkbox>
<paper-checkbox name="bar">Bar</paper-checkbox>
</iron-selector>但此操作不起作用,未选中name=foo复选框
发布于 2017-04-10 17:54:20
我把它修好了,我想selected-attribute="checked"了
<iron-selector attr-for-selected="name" selected="foo" selected-attribute="checked">
<paper-checkbox name="foo">Foo</paper-checkbox>
<paper-checkbox name="bar">Bar</paper-checkbox>
</iron-selector>要允许多项选择,请使用<iron-selector attr-for-selected="name" multi selected-values='["foo","bar"]' selected-attribute="checked">
发布于 2017-04-10 17:30:13
你必须编写你自己的小元素。这并不难..只需要从以下几点开始:
父级
<my-el selected="foo">
<paper-checkbox name="foo"></paper-checkbox>
<paper-checkbox name="bar"></paper-checkbox>
<paper-checkbox name="foobar"></paper-checkbox>
</my-el>my-el
<dom-module id="my-el">
<template>
<slot></slot>
</template>
<script>
Polymer({
is: 'my-el',
properties: {
selected: {
type: String,
observer: "_selectCheckboxes"
}
},
_selectCheckboxes() {
var checkboxes = this.$.slotted.getDistributedNodes();
this.reset(checkboxes);
for (var i = 0; i = checkboxes.length; i++) {
var obj = checkboxes[i];
if(obj.getAttribute("name") == value) {
obj.checked = true;
}
}
},
reset: function(obj) {
for (var i = 0; i = obj.length; i++) {
obj[i].checked = false;
}
return true;
}
});
</script>
</dom-module>我希望这会对你有所帮助。当然,您必须实现更多的逻辑才能使其工作。如果你有更多的问题,尽管问,我可以编辑我的答案。
简单解释一下:https://www.polymer-project.org/2.0/docs/upgrade
顺便说一句,:我假设您使用的是聚合物版本>= 1.7.0。对于旧版本,您必须使用<content>元素而不是<slot>和不同的选择器
https://stackoverflow.com/questions/43311980
复制相似问题