Ember Data - 创建一个具有关联的新记录需要挂钩承诺?

时间:2014-05-13 16:42:52

标签: ember.js ember-data

我正试图通过创建一个简单的考勤应用来了解Ember Data。目标是让学生输入他们的姓名并点击提交,创建与该学生相关联的新出勤记录。以下是我为使其发挥作用所做的工作:

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 }),
  ...
});

-

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();
      });
    }
  }
});

createAttendance操作中,我首先获取输入的名称,找到匹配的student条记录,等待完成的承诺,然后再抓取第一个student,然后创建新的attendance记录它的学生属性设置为抓取的student记录并保存。

所以这很有效,但感觉很奇怪。我希望有人可以告诉我更好的方法来选择记录并在Ember Data中建立关联。

0 个答案:

没有答案