【问题标题】:Polymer paper-tab select first tab programmatically聚合物纸标签以编程方式选择第一个标签
【发布时间】:2015-10-07 07:17:11
【问题描述】:

我们的 paper-tabs 是动态生成的,我们如何默认选择第一个 tab 并触发 change 事件以使铁页内容可见。

<paper-tabs id="scrollableTabs" selected={{selected}} scrollable >
  <template is="dom-repeat" items="[[liveQueues]]" as="queue" >
    <paper-tab on-click="listLiveTokens" >[[queue.queueName]]</paper-tab>
  </template>
</paper-tabs>


 list: function() {

        this.loading=!this.loading;
        this.$.list.url = "http://apicall";
        var tmp = this.$.list.generateRequest();
        console.log(tmp)

    },

此脚本从 api 调用中获取选项卡内容

<iron-pages  selected="{{selected}}">
  <template is="dom-repeat" items="[[liveQueues]]" as="queue" >
    <paper-material elevation="1">
        <iron-list items="[[queueTokens]]" as="token">
          <template>
            <div>
              <div class="item" tabindex="0">
                <span class="avatar" >[[token.tokenNumber]]</span>
                <a href$="{{_getDetailsLink(token.tokenId,token.tokenNumber,token.userName,token.statusType,token.userMobile,token.joinDate)}}">
                  <div class="pad">
                    <div class="primary">[[token.userName]]</div>
                    <div class="secondary">[[token.userMobile]]</div>
                    <div class="secondary dim">[[token.notes]]</div>
                      <div class="secondary dim">[[token.joinTime]]</div>
                  </div>
                </a>
                <iron-icon icon$="[[iconForItem(sminq)]]"></iron-icon>
              </div>
            </div>
          </template>
        </iron-list>
    </paper-material>
  </template>
</iron-pages>

【问题讨论】:

  • 它们是在重复模板中生成的吗?有什么方法可以知道生成完成了吗?一个代码 sn-p 会有所帮助。
  • @Maria 它们是在重复模板中生成的,我添加了代码 sn-ps

标签: polymer polymer-1.0


【解决方案1】:

每次 dom-repeat 更改时都会触发一个事件。您可以收听更改并将 selected 设置为 0。

<template is="dom-repeat" items="[[liveQueues]]" as="queue" on-dom-change="setSelected">

在原型中定义函数。

setSelected: function() {
   this.$.scrollableTabs.selected = 0;
} 

请注意,每次更新 liveQueues 时都会调用该函数,并且您可能不想每次都重置选项卡。 如果你有数据绑定到selected,那么铁页应该会自动更新。

【讨论】:

  • 嗨@mar​​ia,这真的很有帮助,我只是有另一个问题,标签被选中。我还使用像 this.$.scrollablePages.selected = 0; 这样的另一个 id 来选择 Iron 页面。但是加载列表的 iron-list 是不可见的。
  • 如果您使用数据绑定,则无需在页面中设置 selected 。看看this simple plunker。请注意,plunker 仅适用于 Chrome,但如果您将示例托管在自己的机器上,它也应该适用于其他浏览器。填充按钮模拟异步到达的数据并添加选项卡。
【解决方案2】:

好吧,我认为ready函数是初始化的方式!

ready: function() {
  this.selected = 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-06
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多