我现在正在使用Mean堆栈来实现一个喜欢/不喜欢的按钮。我让后端正常工作,并试图弄清楚如何有条件地显示正确的按钮。有一个最喜欢和不喜欢的按钮,使用ng-show基于特定帖子(收藏的东西)是否已经被用户收藏。问题是Angular不会在数据库检查此用户是否已经收到此帖子时等待,因此应显示不受欢迎的按钮。我已经弄乱了$ q和其他异步选项,但我对我的理解并不是很有信心。以下是相关代码:
app.isFavorited = $q.defer();
if(Auth.isLoggedIn()) {
app.isLoggedIn = true;
Auth.getUser().then(function (data) {
postObject.username = data.data.username;
if(data.data.favorites.length == 0) {
app.isFavorited.resolve(false);
app.load = true;
}
for(var i = 0; i < data.data.favorites.length; i++) {
if(id == data.data.favorites[i]) {
app.isFavorited.resolve(true)
app.load = true;
break;
}
if(i == data.data.favorites.length - 1) {
app.isFavorited.resolve(false);
app.load = true;
}
}
});
}
else {
app.isLoggedIn = false;
app.load = true;
}
第55行在获取ng-show中使用的值之前执行: