在angular中,我们有一个rich方法,它运行一些rest调用来丰富数据对象,然后设置一个变量,使隐藏的详细信息选项卡可见。类似于这个过于简化的示例:
$scope.enrich = function(team){
angular.forEach(team.members, function(member){
member.getSkills().then(function(skills){
member.skills=skills;
}
});
$scope.enrichFinished=true;
};
我在enrichFinished为true时打开的详细信息窗格中遇到异常。异常似乎是由于一个过滤器试图对成员进行过滤。杀死并发现成员的技能未定义。我假设问题是,一旦设置了enrichFinished,我们就打开详细信息选项卡,这是在设置member.skills=skill的then子句之前;因此,我们有一个数据竞赛,在我们尝试过滤的时候,技能可能还没有设置好。
告诉angular在我实际生成并保存了所需的数据之前,等待在细节选项卡中运行过滤器的最干净的方法是什么?实际的富集方法在for循环中富集3-4个不同的变量。