Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        3年前关闭。
                                                                                            
                
        
我查看了发行说明,但是找不到任何提及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上完成了许多应用程序,但从未遇到过问题...

有点困惑!

最佳答案

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

关于javascript - Emberjs 2.11.0奇怪的RSVP行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41948923/

10-11 06:04