私が取り組んでいるアプリには、このようなイベントモデルがあります
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}}
ここのスタックオーバーフローに関するいくつかの回答と同様に、プラスに応じたコントローラーを介してそのダイアログを作成しています。そのため、モーダルをObjectController
and で動作させることができるようです
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
、後ろにあるテンプレートの「もう1つ追加」ボタンで、別のレコードをテストモデルにプッシュし、テンプレートは次のテンプレートコードを介して2番目のフォームを自動的に追加します:
{{#each controller}}
...form...
{{/each}}
私の実装をもっと見る必要がある場合は、昨日投稿したこの質問をチェックしてください: 同じルート/リソースで EmberData モデルを作成して表示 する 質問を理解していただければ幸いです。