Emberjs 2.11.0奇怪的RSVP行为

时间:2017-01-31 02:50:49

标签: javascript ember.js ember-data

我查看过发行说明,但找不到任何提及RSVP如何工作的变化,但是有没有理由不起作用?

在路线上,一个非常简单的模型:

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

并在模板中:

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

如果我使用标准模型调用(例如

),则不返回任何内容
  model() {
    return get(this, 'store').findAll('post');
  }

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

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

有点困惑!

1 个答案:

答案 0 :(得分:1)

RSVP.hash返回一个对象,其中每个键都包含来自promise的已解析值。

在您的情况下,这意味着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}}

您可以在posts中设置setupController

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

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