首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以角度等待直到元素被加载?

以角度等待直到元素被加载?
EN

Stack Overflow用户
提问于 2015-03-24 16:48:18
回答 1查看 334关注 0票数 0

在“角”中,我们有一个充实方法,它运行rest调用来充实数据对象,然后设置一个变量,使隐藏的细节选项卡可见。类似于这个过于简化的示例:

代码语言:javascript
复制
$scope.enrich = function(team){
    angular.forEach(team.members, function(member){
        member.getSkills().then(function(skills){
            member.skills=skills;
        }
    });

    $scope.enrichFinished=true;
};

我在细节窗格中获得异常,当enrichFinished为true时将打开该窗格。异常似乎是由于一个筛选器造成的,该过滤器试图在member.skill上筛选并发现成员的技能未定义。我假设问题是,一旦设置了enrichFinished,就会打开detail选项卡,这是在设置member.skills=skill的have子句之前;因此,我们有一个数据集,当我们尝试对其进行筛选时,可能还没有设置技能的数据。

在我实际生成和保存我需要的数据之前,有什么最干净的方法可以告诉角等待在detail选项卡中运行过滤器?实际的充实方法丰富了for循环中3-4个不同的变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-24 17:03:00

您可以在所有约定解决之后设置$scope.enrichFinished=true;,因此您可以像这样使用$q.all

代码语言:javascript
复制
$scope.enrich = function(team){
    $q.all(team.members.map(
                function(member){
                    return member.getSkills().then(
                        function(skills){
                            member.skills=skills;
                        }
                    );                        
                }
            )
    ).then(function(){
        $scope.enrichFinished=true;
    });
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29238391

复制
相关文章

相似问题

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