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

yor*_*bro 9 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'),
});
Run Code Online (Sandbox Code Playgroud)

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

{
  id: 1,
  email: "abc@example.com",
  links: {
    students: /teacher/1/students
  }
}
Run Code Online (Sandbox Code Playgroud)

在登录控制器中,然后我将这些数据推送到商店并将其存储在Session控制器的属性中:

this.set('currentUser', this.get('store').push('teacher', teacherJson))
Run Code Online (Sandbox Code Playgroud)

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

App.SessionController.get('currentUser').get('students')
Run Code Online (Sandbox Code Playgroud)

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

yor*_*bro 9

好的,我找到了答案.我有一个属性添加async: truestudents模型的关联Teacher:

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