首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >AngularJS继续在作用域中添加项

AngularJS继续在作用域中添加项
EN

Stack Overflow用户
提问于 2014-08-25 00:51:33
回答 1查看 47关注 0票数 0

我在控制器中使用此方法为我的应用程序创建了一个虚拟数据:

代码语言:javascript
运行
复制
$scope.owners = [];

        for (var i = 1; i <= 14; i++) {
            $scope.owners.push({
                id: i,
                systemCode: '00' + (1284538+i),
                systemName: 'Desktop',
                description: 'Lorem ipsum dolor',
                operational: '2973238',
                business: '5621253',
                manager: 'Dr. Smith',
                status: 'Active'
            });
        }

并添加此函数以执行删除请求:

代码语言:javascript
运行
复制
$scope.rowDelete = function(row){
            $scope.owners.splice((this.owner.id - 1), 1);
        }

和用于分页的页面筛选器:

代码语言:javascript
运行
复制
MyApp.filter('page', function () {
    return function (list, page, size) {
        var start = 0, end = 0;

        //console.log('page filter...', page, size);
        page = page || 1;

        if (angular.isArray(list)) {
            end = list.length;

            if (page && Number(page) && size && Number(size)) {
                page = Number(page);
                size = Number(size);

                start = (page - 1) * size;
                end = start + size;
            }

            return Array.prototype.slice.call(list, start, end);
        }

        return null;
    }

});

在HTML模板中,我使用ng-重复和自定义过滤器:

代码语言:javascript
运行
复制
<tr data-ng-repeat="owner in owners | page:$stateParams.page:2">
<td class="table-cell-clean">
    <a href="javascript:;" data-ng-click="rowDelete()" class="btn btn-clean"><i class="mg-icon-delete"></i></a>
</td>
<td>{{ owner.systemCode }}</td>
<td>{{ owner.systemName }}</td>
<td>{{ owner.description }}</td>
<td>{{ owner.operational }}</td>
<td>{{ owner.business }}</td>
<td>{{ owner.manager }}</td>
<td class="align-center">{{ owner.status }}</td>

每当我单击delete按钮时,都会按预期调用rowDelete(),删除该行,但一旦它离开DOM,下一页中的一个新项就会插入到当前表中。

会出什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-25 01:34:52

这将如预期的那样。您的所有者数组正在被修改,这要求重新计算ng-重复表达式,其中包括页面筛选器表达式作为它的一部分。因此,所有者是通过删除一行、ng-重复检测更改并重新评估重复表达式来修改的,该表达式可以在其通过页面筛选器运行所有者的数组上迭代。因此,每页n项,删除离开n-1,页过滤所有者数组返回n项。

一切正常的行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25477722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档