angularjs - AngularJS 的 Material Design Lite 表刷新问题

标签 angularjs material-design-lite

我正在使用 mdl-data-table mdl-js-data-table 和 ng-repeat 来实现简单的分页功能。它有效,但有一个恼人的问题:每当我翻页时,表格就会闪烁。例如如果表有 20 行,每页有 10 行,mdl 表将首先显示 20,然后在十分之一秒内将其缩小为 10 行。

如果我删除类 mdl-data-table mdl-js-data-table 并仅使用表,则一切正常,根本没有闪光。但我当然失去了 MDL 风格。

我想知道 Angular 和 MDL 是否都会更新 DOM,并且 MDL 会以某种方式更新表格两次。但我不知道该去哪里查看来修复它。调用 mdl window.componentHandler.upgradeAllRegistered();无论如何,这似乎并不重要。

请帮忙。谢谢。

部分代码如下。 initData 函数只是设置分页变量和数据数组的初始值。

<div ng-init="initData()"></div>
<table class="mdl-data-table mdl-js-data-table mdl-data-table__cell--non-numeric">
    <thead>
        <tr>
            <th>Name</th>
        </tr>
    </thead>
    <tbody>
        <tr ng-repeat="n in datalists | pagination: curPage * pageSize | limitTo: pageSize" ng-controller="VhlCtrl">
            <td>{{$index}}</td>
        </tr>
    </tbody>
    <button class="mdl-button mdl-js-button mdl-button--icon mdl-button" ng-disabled="curPage == 0" ng-click="curPage=curPage-1">
        <i class="material-icons">skip_previous</i>
    </button>
    Page {{curPage + 1}} of {{ numberOfPages() }}
    <button class="mdl-button mdl-js-button mdl-button--icon mdl-button" ng-disabled="curPage >= datalists.length/pageSize - 1" ng-click="curPage = curPage+1">
        <i class="material-icons">skip_next</i>
    </button>
</table>

最佳答案

MDL 适用于静态网站,不适用于网络应用程序。

考虑使用Angular Material

关于angularjs - AngularJS 的 Material Design Lite 表刷新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32792797/

相关文章:

javascript - ui.bootstrap 破坏了我的单元测试并出现意外结果错误?

工厂中的 AngularJS $rootScope - 重新加载数据

javascript - 当用户输入逗号时,Angularjs 会破坏标签

html - div 的 CSS 高度和 Angular UI 路由

html - MDL数据表不会一路缩水

java - 使用 ionic 构建 PhoneGap 应用程序时出现构建错误

css - 如何缩放 MDL 微调器?

css - 如何包含 Chrome 扩展内容脚本的样式?

javascript - 两列菜单的 Material Design Lite 示例 - 在 Chrome 中不起作用

material-design-lite - 如何使用 javascript 隐藏 MDL 工具提示