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.但这从未发生过.为什么没有触发请求?
好的,我找到了答案.我有一个属性添加async: true到students模型的关联Teacher:
App.Teacher = DS.Model.extend({
email: DS.attr('string'),
students: DS.hasMany('student', { async: true })
});
Run Code Online (Sandbox Code Playgroud)