javascript - dom-repeat内部的 polymer 动态禁用

标签 javascript polymer polymer-1.0

我想根据variants变量将纸张项设置为禁用或激活。我用dom-repeat列出了纸质物品。 disabled属性可以用于此目的,但是不能像以下这样设置:disabled="true"disabled="false"

我怎样才能做到这一点?



<paper-listbox attr-for-selected="itemID" selected="{{item.id}}" class="dropdown-content">
    <template is="dom-repeat" items="[[variants]]">
        <paper-item itemID$="[[item.id]]">[[item.value]]</paper-item>
    </template>
</paper-listbox>




Polymer({
    is: 'item-create',
    properties: {
        variants: {
            type: Array,
            value: [
                {id: 1, value: "Color", status: "disabled"},
                {id: 2, value: "Number", status: "active"}
            ]
        }
    }
});

最佳答案

您可以使用仅在truestatus时返回disabledcomputed binding

// template
<paper-item disabled="[[_computeDisabled(item.status)]]">

// script
_computeDisabled: function(status) {
  return status === 'disabled';
}




HTMLImports.whenReady(() => {
  Polymer({
    is: 'x-foo',
    properties: {
      variants: {
        type: Array,
        value: () => [{
          id: 1,
          value: "Color",
          status: "disabled"
        }, {
          id: 2,
          value: "Number",
          status: "active"
        }]
      }
    },
    _computeDisabled: function(status) {
      return status === 'disabled';
    }
  });
});

<head>
  <base href="https://polygit.org/polymer+1.11.3/webcomponents+webcomponents+:v0/components/">
  <script src="webcomponentsjs/webcomponents-lite.js"></script>
  <link rel="import" href="paper-dropdown-menu/paper-dropdown-menu.html">
  <link rel="import" href="paper-listbox/paper-listbox.html">
  <link rel="import" href="paper-item/paper-item.html">
  <link rel="import" href="neon-animation/web-animations.html">
</head>
<body>
  <x-foo></x-foo>

  <dom-module id="x-foo">
    <template>
      <paper-dropdown-menu>
        <paper-listbox attr-for-selected="item-id" selected="{{item.id}}" slot="dropdown-content">
          <template is="dom-repeat" items="[[variants]]">
            <paper-item item-id="[[item.id]]" disabled="[[_computeDisabled(item.status)]]">[[item.value]]</paper-item>
          </template>
        </paper-listbox>
      </paper-dropdown-menu>
    </template>
  </dom-module>
</body>





codepen

关于javascript - dom-repeat内部的 polymer 动态禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40804143/

相关文章:

Javascript正则表达式,删除单段换行符

polymer - Polymer 和 Web Components polyfill 之间的区别?

javascript - 是否仍然没有简单的方法可以将带有复合表情符号的字符串拆分为数组?

javascript - AngularJS - Controller 功能顺序 - 一些引用文献不起作用

javascript - Polymer - 分布式节点是否样式化然后分布式?

polymer 自定义元素属性访问或发送

polymer - 如何过滤 polymer 1.0 中的铁列表?

css - 在 Polymer 中设置自定义元素的样式

polymer - 如何在 Web Component Tester 中模拟全局变量

javascript - 为什么解构赋值不知道空值是假的并使用默认值?