奇怪的问题 -
因此,我运行加载用户个人资料的代码。在代码期间,它会检查查看个人资料的人是否为“朋友”。如果是,它使用NG-IF并设置$ scope.button以获得新文本。
然而 - 通常我需要多次刷新页面以供Angular / http-server查看。我可以在console.log中看到连接是正确的,但问题仍然存在。如果我不需要刷新,我会看到“闪烁”,并在页面加载时观察范围的变化。
有没有办法阻止这种情况?
我试过$ scope.apply();. (从火基中提取数据)
答案 0 :(得分:2)
由于承诺来自AngularJS框架之外,框架不知道模型的更改并且不更新DOM。使用$q.when
将外部承诺转换为Angular框架承诺。
var ref = x.child(userLoggedIn).child(allUsersArray[i].uid)
var refPromise = $q.when(ref.once('value'));
使用$ q与AngularJS框架及其摘要周期正确集成的服务承诺。
$ q.when
将可能是值的对象或(第三方)随后的承诺包含到
$q
承诺中。当您处理可能会或可能不是承诺的对象,或者承诺来自不可信任的源时,这非常有用。
我使用的是Promises.all,$ q似乎修复了这种行为。
在幕后,$q.all
对对象或数组中的每个promise使用$q.when
。这也将外部承诺转换为Angular框架承诺。