如何在 poymer-js 中隐藏下拉列表

how to hide drop down list in poymer-js

提问人:Satyam Kumar 提问时间:7/27/2022 最后编辑:Satyam Kumar 更新时间:4/4/2023 访问量:32

问:

我需要隐藏下拉菜单。我尝试了.hided属性,但它不起作用

<paper-dropdown-menu id="firmChannelFilter" hidden="${(this._channelFilterVisibility)}" 
             class="small-padding" label="Channel Filter">
             <paper-listbox slot="dropdown-content" 
             .hidden="${(this._channelFilterVisibility)}" id="firmChannel"
JavaScript 节点:.js 聚合物 DART-聚合物 -3.X

评论


答:

0赞 Metal Paw 4/4/2023 #1

您应该能够按如下方式设置该属性:hidden

hidden$="[[_channelFilterVisibility(valueThatChanges)]]"

  1. 如果隐藏 ,它将自动隐藏 ,因为它是一个嵌套元素。paper-dropdown-menupaper-listbox
  2. 如果要更改非聚合物特定的属性/属性,则需要在 = 之前添加一个 $,即 或 hidden 属性。class$="[[_colour(obj.Active)]]"class$="[[_selectedColour(selectedFilter)]]"
  3. 您不需要量词 - Polymer 已经知道并解释您在 之间或属于 .this[[]]{{}}this
  4. 您必须将属性传递给函数,否则它只会在页面/元素加载时调用一次。如果传入更改的属性(即过滤器属性),则每次属性值更改时,Polymer 都会调用该函数。
  5. 该属性是 ,而不是在 中。hidden.hiddenpaper-listbox
  6. {{}}用于双向装订,通常在与显示和设置值的内容(如纸质列表框)交互时使用。 是单向绑定,通常在某物只接受一个值时使用。[[]]

归根结底,你的 html 代码应该如下所示:

<paper-dropdown-menu id="firmChannelFilter"
                     hidden$="[[_channelFilterVisibility(filterProperty)]]"
                     class="small-padding"
                     label="Channel Filter">
  <paper-listbox slot="dropdown-content"
                 class="dropdown-content"
                 id="firmChannel"
                 selected="{{selectedIdString}}"
                 attr-for-selected="id">
    <paper-item id="A">Item A</paper-item>
    <paper-item id="B">Item B</paper-item>
    <paper-item id="C">Item C</paper-item>
  </paper-listbox>
</paper-dropdown-menu>

简而言之,这是一个包含 3 个项目的下拉菜单:项目 A、项目 B 和项目 C。当您选择其中之一时,它会将 的值设置为字符串“A”、“B”或“C”。当 的值发生变化时,将使用新值作为传入参数调用该函数。this.selectedIdStringthis.filterPropertythis._channelFilterVisibility