Ember.js 余烬数据-创建具有关联的新记录需要与承诺挂钩?
我试图通过创建一个简单的考勤应用程序来了解余烬数据。目标是在学生姓名中键入一个学生,然后点击submit,创建一个与该学生关联的新出勤记录。以下是我所做的工作:Ember.js 余烬数据-创建具有关联的新记录需要与承诺挂钩?,ember.js,ember-data,Ember.js,Ember Data,我试图通过创建一个简单的考勤应用程序来了解余烬数据。目标是在学生姓名中键入一个学生,然后点击submit,创建一个与该学生关联的新出勤记录。以下是我所做的工作: App.Student = DS.Model.extend({ name: DS.attr('string'), attendances: DS.hasMany('attendance', { async: true }) }); App.Attendance = DS.Model.extend({ student: DS
App.Student = DS.Model.extend({
name: DS.attr('string'),
attendances: DS.hasMany('attendance', { async: true })
});
App.Attendance = DS.Model.extend({
student: DS.belongsTo('student', { async: true }),
...
});
--
在createAttention
操作中,我首先抓取输入的姓名,找到匹配的student
记录,等待履行承诺后再抓取第一个student
,然后创建一个新的Attention
记录,将其student属性设置为抓取的student
记录并保存它
这是可行的,但感觉很奇怪。我希望有人能向我展示一种更好的方法来选择记录并在余烬数据中建立关联。这几乎就是工作流程,因为您还没有学生的实例或学生的id(用于按id查找)。很有趣。谢谢你的回复。
App.NewAttendanceController = Ember.ObjectController.extend({
content: {},
actions: {
createAttendance: function() {
var studentName = this.get('name');
this.store.find('student', { name: studentName })
.then(function(fulfilledPromise) {
var student = fulfilledPromise.get('firstObject');
var attendance = fulfilledPromise.store.createRecord('attendance', {
time: moment(),
student: student
});
attendance.save();
});
}
}
});