此函数在页面加载时触发一次,但以后再也不会触发。我试过$watch、$apply和firebase的ref.on('value',……但没有骰子。模型会随着scope.job.getApplicants((的值而变化,但scope.appliers _在这种情况下不会刷新。
function go() {
var p = [];
// scope.job.getApplicants() returns a $firebaseArray of user IDs
scope.job.getApplicants().$loaded().then(function(list) {
list.forEach(function(app) {
// User_(app.$id) returns a $firebaseObject
var user = User_(app.$id);
p.push(user);
})
});
return p;
}
scope.applicants_ = go();
这就是我解决问题的方法:
ref.on('value', function(apps) {
var applicantIDs = Object.keys(apps.val());
scope.applicants_ = applicantIDs.map(function(app) {
return User_(app);
});
});