如何在Ember中找到关联承诺的记录?

时间:2014-06-20 18:53:52

标签: javascript ember.js ember-data

所以我有一个模特

App.CourseBook = DS.Model.extend({
  // Associations
  course: DS.belongsTo('course', { async: true }),
  book: DS.belongsTo('book', { async: true })
});

在我的序列化器中,我只嵌入了课程和书籍ID。我不包括课程和书籍数据。

有一次我需要在find函数中获取数据

course.get('courseBooks').then(function(course_books){
  var course_book = course_books.find(function(cb){
    return cb.get('book').then(function(cb_book){
      return cb_book === book;
    });
  });
  // Do something with course_book...
});

这不起作用,因为cb.get('book')按预期返回承诺。

因此,如果不包括课程序列化程序中的书籍,如何在涉及承诺时搜索模型的关联?

如果我包含数据,就像

一样简单
var course_book = course_books.find(function(cb){
  return cb.get('book') === book;
});

但如果可能的话,我不想包括它。

谢谢!

1 个答案:

答案 0 :(得分:1)

首先解决承诺。

var all =course_books.getEach('book');
return Ember.RSVP.all(all).then(function(records){
  return records.filter...
});

抱歉,手机编程有点粗糙