我正在开发的应用程序有一个像这样的事件模型
App.Event = DS.Model.extend({
title: DS.attr('string'),
...
tests: DS.hasMany('App.Test')
});
现在我可以EventController
创建并保存一条新记录,this.set('content', App.Event.createRecord());
this.get('model').save();
只需保存标题属性即可,但现在我还希望能够通过模式对话框保存 hasMany-relationships(例如测试)。我正在通过{{outlet modal}}
加号控制器创建该对话框,类似于stackoverflow 上的一些答案。所以我似乎能够让模态与一个ObjectController
和
App.TestController = Em.ObjectController.extend({
needs: ['event'],
init: function(){
var event = this.get('controllers.event').get('content')
this.set('content', event.get('test').createRecord());
}
});
老实说,我还没有完整地测试过代码是否可行,但看起来确实如此。所以模板有一个相应的表格来填写详细信息。现在我想要的是一个ArrayController
在后面和模板中的一个按钮“再添加一个”,然后将另一条记录推入测试模型,模板通过以下模板代码自动添加第二个表单:
{{#each controller}}
...form...
{{/each}}
如果您需要查看我的更多实施,请查看我昨天发布的这个问题: 在同一路线/资源上创建和显示 EmberData 模型 希望您理解这个问题,如果不是,我很乐意澄清。