如何更新加入 belongsTo 的模型?

How to update model joined with belongsTo?

我有咨询模式

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;
    }
}

但咨询模型不知道此更新,因为我在使用来自用户模型 this.get('remoteUser.msg_block') 的数据的咨询模型中有 属性 freeMsgCount。用户数据已更新我在 Ember 检查器中看到了它。我如何告诉咨询模型更新关系 remoteUser?

您似乎没有在计算 属性 中观察 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'),