繁体   English   中英

具有hasMany的Ember store.push不更新模板吗?

[英]Ember store.push with hasMany doesn't update template?

假设以下模型

App.User = DS.Model.extend(
  email: DS.attr('string')
  session_users: DS.hasMany('sessionUser')
)

App.SessionUser = DS.Model.extend(
  user: DS.belongsTo('user')
  state: DS.attr('string')
  session: DS.belongsTo('session')
)

App.Session = DS.Model.extend(
  title: DS.attr('string')
  session_users: DS.hasMany('sessionUser')
)

路线session_route.js.coffee

App.SessionRoute = Ember.Route.extend(
  model: (params) ->
    this.store.find('session', params.id)
)

和以下session.hbs模板:

{{#each session_users}}
    {{state}}
{{/each}}

我已连接到WebSocket流,当创建新的SessionUser时,会收到通知。
在这里sessions_controller.js.coffee来测试推送一些有效负载:

payload =
    id: 20
    user: controller.store.getById('user', 2)
    session: controller.store.getById('session', 2)
    state: 'confirmed'
  controller.store.push('sessionUser', payload)

使用Ember Inspector(Chrome扩展程序),我可以看到会话用户已被推送,并且存在于商店中且具有正确的关系,但是模板未更新。
使用store.createRecord时 ,模板实际上正在更新,但是我想使用push / pushPayload以便可以使用现有的序列化器。

我很确定这是一个已知的错误。 我们使用websocket进行类似的操作:推送有效负载以创建记录后,我们手动调用addObject将其添加到hasMany关系中,例如

var comment = store.push('comment', payload);
post.get('comments').addObject(comment);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM