使用 angular-material 按钮在 ng-repeat 中出现奇怪的短持续时间重复行为

Odd short duration duplication behavior in ng-repeat with angular-material buttons

This is a code pen for the (stripped down) material version and this 是(精简版)bootstrap 版本。除了依赖关系之外,所有 javascript 都是相同的。

我有一个使用 bootstrap css 的服务器端分页指令(我不确定 angular-bootstrap 库是否没有分页时间或者如果我还没有找到它)。我决定将它移植到 angular-material,认为指令逻辑可以完全重用,我可以只切换模板。在 angular-material 版本中,构成寻呼机的所有 md 按钮都会瞬间复制,然后在每次重建寻呼机时消失。我在每次 ajax 调用后重建寻呼机,因为过滤器可以更改总页数。寻呼机的精简版如下:

app.controller('pagerCtrl', [
            '$scope', 'userService', function ($scope, userService) {
                var self = this;

                self.pageNumber = 1;
                self.page = function (number) {
                    self.pageNumber = number;
                    self.refresh();
                }
                self.refresh = function () {
                    userService.loadAllUsers().then(function (users) {
                        self.users = [].concat(users.data);
                        self.paging = users.paging;
                        self.buildPager();
                    });
                }
                self.buildPager = function () {
                    var pages = [];
                    for (var i = 1; i < self.paging.numberOfPages + 1; i++) {
                        pages.push({ number: i, isActive: self.pageNumber === i });
                    }
                    self.pages = [].concat(pages);
                }
                self.refresh();
            }]);

This is a code pen for the (stripped down) material version and this 是(精简版)bootstrap 版本。除了依赖关系之外,所有 javascript 都是相同的。

我想知道这是否是预期的行为,以及我是否可以采取任何措施来停止瞬时复制。在设置页面之前,我尝试了几种清空页面的变体,将页面设置为 [].concat(pages) 就像他们在演示项目中所做的那样。

如有任何想法,我们将不胜感激。

禁用动画解决了这个问题(尽管它可能会破坏其他东西)。

看看this pen

我全局禁用动画,问题消失了。

app.run(function($animate){
    $animate.enabled(false);
})

您也可以在本地禁用元素的动画。