正确的方法来构建两个添加用户的路径

时间:2013-07-21 21:33:38

标签: ember.js

现在我有以下应用 - http://jsbin.com/okoxim/7/edit

它允许一个人按名称或按类浏览用户。如果用户浏览,并且您单击新用户,则会获得没有默认值的新表单,并且在保存时,您将被定向到该用户详细信息。

按类浏览时,我想提供添加新用户的选项,新表单应该默认为当选择新用户选项时所在的当前类,并且在保存时,我们应该返回到类得救了。

设置路线的正确方法是什么来促进这种情况?我应该如何重用现有的新控制器呢?

1 个答案:

答案 0 :(得分:0)

您可以使用自定义event在路线内进行管理。从您的视图/控制器中,您将事件冒泡到路线,该路线负责在给定数据的情况下添加学生。

App.ApplicationRoute = Em.Route.extend({
  events: {
    createStudent: function(student, gradeId) {
      var grade = App.Grade.find(gradeId);
      var newStudent = App.Student.create({
        name: student.name,
        address: student.address,
        grade: grade
      }); 

      newStudent.save();
      // other application related stuff
    }
  }
});

然后从控制器中使用send将包含此数据的事件发送到路径。

save: function() {
  var gradeId = this.get('newGrade');
  var student = {
    name: this.get('newName'),
    address: this.get('newAddress')
  };
  this.send('createStudent', student, gradeId);
  // other view related stuff
}

然后可以从不同的控制器/视图重用createStudent事件。