首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建一组纸质复选框(使用铁质选择器?)

创建一组纸质复选框(使用铁质选择器?)
EN

Stack Overflow用户
提问于 2017-04-10 05:11:06
回答 2查看 1.8K关注 0票数 2

我的目标是对一组paper-checkbox进行分组。

对于paper-ratio-button,我正在做:

代码语言:javascript
运行
复制
<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

代码语言:javascript
运行
复制
<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复选框

EN

回答 2

Stack Overflow用户

发布于 2017-04-10 17:54:20

我把它修好了,我想selected-attribute="checked"

代码语言:javascript
运行
复制
<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">

票数 4
EN

Stack Overflow用户

发布于 2017-04-10 17:30:13

你必须编写你自己的小元素。这并不难..只需要从以下几点开始:

父级

代码语言:javascript
运行
复制
<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

代码语言:javascript
运行
复制
<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>和不同的选择器

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43311980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档