Emberjs 2.11.0 奇怪的 RSVP 行为

Emberjs 2.11.0 strange RSVP behaviour

我查看了发行说明,但找不到任何提及 RSVP 工作方式更改的内容,但这是行不通的原因吗?

在路上,很简单的模型:

  model() {
    return RSVP.hash({
      posts: get(this, 'store').findAll('post')
    });
  }

并在模板中:

{{#each posts as |post|}}
  {{post.title}}
{{/each}}

Returns 没什么,但是如果我使用标准模型调用,例如

  model() {
    return get(this, 'store').findAll('post');
  }

{{#each model as |post|}}
  {{post.title}}
{{/each}}

它按预期工作。我在以前的 2.9.0 上做过很多很多应用程序,从来没有遇到过这个问题...

小迷糊!

RSVP.hash returns 一个对象,其中每个键都包含来自承诺的已解析值。

在您的情况下,这意味着 model 将是 { posts: ... },因此您只是缺少 .posts 属性 链式调用:

路线:

model() {
  return RSVP.hash({
    posts: get(this, 'store').findAll('post')
  });
}

模板:

{{#each model.posts as |post|}}
  {{post.title}}
{{/each}}

如果你想使用这个模板

{{#each posts as |post|}}
  {{post.title}}
{{/each}}

您可以在setupController中设置posts:

model() {
  return RSVP.hash({
    posts: get(this, 'store').findAll('post')
  });
}

setupController(controller, model) {
  controller.set('posts', model.posts);
}