Ember-data延迟加载与“链接”属性的关联

时间:2013-09-15 13:06:58

标签: ember.js ember-data

我有一位模特老师,有很多学生。模型定义如下:

App.Teacher = DS.Model.extend({
  email: DS.attr('string'),
  students: DS.hasMany('student')
});

App.Student = DS.Model.extend({
  teacher: DS.belongsTo('teacher'),
});

当教师登录时,服务器返回教师的JSON表示:

{
  id: 1,
  email: "abc@example.com",
  links: {
    students: /teacher/1/students
  }
}

在登录控制器中,我将此数据推送到商店并将其存储在会话控制器的属性中:

this.set('currentUser', this.get('store').push('teacher', teacherJson))

我想延迟加载students关联,因此我使用了API(http://emberjs.com/api/data/classes/DS.Store.html#method_push)中定义的“链接”格式。所以,理想情况下,每当我打电话

App.SessionController.get('currentUser').get('students')

它会通过向students发送GET请求来加载关联的/teacher/1/students。但这从未发生过。为什么没有触发请求?

1 个答案:

答案 0 :(得分:9)

好的,我找到了答案。我必须在async: true模型的students关联中添加一个属性Teacher

App.Teacher = DS.Model.extend({
  email: DS.attr('string'),
  students: DS.hasMany('student', { async: true })
});