【发布时间】:2014-02-01 10:17:30
【问题描述】:
我对 javascript 和 Promise 还很陌生,所以我可能没有掌握所有基本概念,但我正在尝试。
我的模型中有一个检查友谊状态的函数:
friendShipStatus: function() {
var self = this;
return Ember.RSVP.all([this.container.lookup('user:current'),
this.get('myFriends'),
this.get('friendsWithMe'),
this.get('friends')]).then(function(result){
var user = result[0], myFriends = result[1],
friendsWithMe = result[2], friends = result[3]
if(friends.contains(user)){
return 2;
} else if(friendsWithMe.contains(user)){
return 4;
} else if(myFriends.contains(user)){
return 1;
} else if (self.get('id') === user.get('id')){
return 3;
} else {
return 0;
}
});
}.property('friends')
不,我只想通过以下方式在我的模板中输出这个值(例如 3):
FriendStatus :{{ friendShipStatus}}<br>
但我只得到对象输出:
朋友状态:[对象对象]
如果我通过 log helper {{ log friendShipStatus }} 记录输出,我看到 promise 用值 3 解析。为什么这个值没有放入我的模板中?
【问题讨论】:
-
如果 - 您设置一个字符串值(在 RSVP 调用上方初始化)而不是返回 RSVP,然后在函数底部返回该空字符串并让数据绑定魔术改变它在他们回调期间?
-
尝试用
self.set('friendShipStatus', 3)替换return 3 -
我现在用 self.set 完成了 ..... 将其发布为我可以接受的答案
-
你绝对不想那样做……
标签: javascript ember.js handlebars.js