如何更新与belongsTo连接的模型?

时间:2015-01-21 12:02:42

标签: ember.js ember-data

我有咨询模式

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关系?

1 个答案:

答案 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'),