繁体   English   中英

对AngularJS用户过滤器使用promise

[英]Use promise with angularjs user filter

我有一个用户过滤器。 您可以在下面看到模拟示例(它返回获取的相同数据,即users_data_contents,实际上是函数调用):

var appModule = angular.module('appModule', [])
    .filter('filter_ghosts', function($rootScope){
        return function(users_data_contents){ // gets data from view
            return users_data_contents;
        };
    });

我需要在异步模式下使用它,但不太了解如何使用。 我尝试过这样的事情:

var appModule = angular.module('appModule', [])
    .filter('filter_ghosts', function($rootScope){    
        function getPromised(){
            var cnt = 0, intrv = setInterval(function() {
                ++cnt;
                if (cnt>10) {
                    return function(users_data_contents){
                        clearInterval(intrv);
                        return users_data_contents;
                    }
                }
                if (cnt > 50) {
                    clearInterval(intrv);
                }
            }, 100);
        }
        getPromised.$stateful = true;
        return getPromised;
    });

但这是行不通的。 应用过滤器的html如下所示:

<tr ng-repeat="user_data in usersList | filter_ghosts">
    ....

有人可以帮忙吗?

UPD

我的问题最接近的解决方案是: AngularJS:异步初始化过滤器但是,事实证明,更合适的方法是根本不使用过滤器,而是将转发器绑定到在相应过程中更改的数组。

在作用域中创建一个空数组。 然后将带有过滤器的ng-repeat绑定到该数组。 然后,在异步操作完成后,用值填充该数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM