我有咨询模式
export default DS.Model.extend({
records: DS.hasMany('record', { async: true }),
currentUser: DS.belongsTo('user'),
remoteUser: DS.belongsTo('user'),
created_time: DS.attr('number'),
freeMsgCount: function () {
return (this.get('remoteUser.msg_block')-this.get('user_msg_cnt'));
}.property('user_msg_cnt'),
.....
});
用户模型
export default DS.Model.extend({
name: DS.attr('string'),
.....
});
我尝试更新用户模型。我通过WebSocket
获取json数据socket.on('message', function (jsonObj) {
if (jsonObj.action && jsonObj.action == 'userReload') {
self.store.push('user',jsonObj.userData );
return;
}
}
但是咨询模型不知道这个更新,因为我在咨询模型中有属性freeMsgCount
,它使用来自用户模型this.get('remoteUser.msg_block')
的数据。用户数据已更新我在Ember检查员中看到过。如何告诉咨询模型更新remoteUser关系?
答案 0 :(得分:1)
您似乎没有在计算属性中查看remoteUser
更改,因此如果remoteUser
属性发生更改,则无法触发。请将remoteUser.msg_block
添加到计算属性声明:
export default DS.Model.extend({
# ...
freeMsgCount: function () {
return (this.get('remoteUser.msg_block')-this.get('user_msg_cnt'));
}.property('user_msg_cnt', 'remoteUser.msg_block'),