【问题标题】:md-tabs not showing scroll or paginationmd-tabs 不显示滚动或分页
【发布时间】:2018-09-21 23:06:05
【问题描述】:

我最近将我的 angularjs 材质版本从 1.0.9 升级到了 1.1.10。更改后,当出现溢出时,我的滚动条停止显示在我的选项卡菜单面板的侧面。这以前可以正常工作。 现在我只在 Devtools 中看到以下内容,由于某种原因,this 标志没有变为 true 以使分页工作。请让我知道这可能是什么问题。

<!-- ngIf: $mdTabsCtrl.shouldPaginate -->

这是我的代码。

<div class="mainContentWrapper md-whiteframe-2dp" id="mainContentWrapper" style="overflow:auto;">
            <div class="tab-panel">
                <md-content class="md-padding">
                    <md-tabs md-selected="selectedIndex" md-border-bottom md-autoselect>
                        <md-tab>
                            <img class="dashboard" width="20" src="../../images/dashboard-icon1.png" />
                            <md-tooltip md-direction="right" ng-click="backToDashboard()">
                                Dashboard
                            </md-tooltip>
                        </md-tab>
                        <md-tab ng-repeat="tab in tabs"
                                ng-disabled="tab.disabled"
                                title="{{tab.desc}}" ng-if="$index>0">
                            {{tab.title}}
                            <md-tooltip>
                                {{tab.desc}}
                            </md-tooltip>
                        </md-tab>
                    </md-tabs>
                </md-content>
            </div>

【问题讨论】:

    标签: angularjs angularjs-material


    【解决方案1】:

    从 1.0.9 到 1.1.10 的实现发生了变化。在新版本中,它使用 MutationObserver 来检测任何更改以决定是否需要显示分页。

    var mutationCallback = function() {
            ctrl.updatePagination();
            ctrl.updateInkBarStyles();
          };
    
          if('MutationObserver' in $window) {
            var config = {
              childList: true,
              subtree: true,
              // Per https://bugzilla.mozilla.org/show_bug.cgi?id=1138368, browsers will not fire
              // the childList mutation, once a <span> element's innerText changes.
              // The characterData of the <span> element will change.
              characterData: true
            };
    
            observer = new MutationObserver(mutationCallback);
            observer.observe(element[0], config);
            disconnect = observer.disconnect.bind(observer);
          } else {
            var debounced = $mdUtil.debounce(mutationCallback, 15, null, false);
    
            element.on('DOMSubtreeModified', debounced);
            disconnect = element.off.bind(element, 'DOMSubtreeModified', debounced);
          }
    

    以前它只使用 $mdUtil.debounce(mutationCallback, 100) 这意味着它每 100 毫秒更新一次标志。由于某种原因,当我调整窗口大小时,不会触发突变。所以我不得不在调整标签大小时手动改变标签的内容。我不喜欢这个修复。我错过了什么吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 2019-01-01
      • 1970-01-01
      相关资源
      最近更新 更多