私が読んだ内容に基づくと (間違っていたら訂正してください)、モデルをいつ保存するか、次にどこに遷移するかを処理するロジックはルーター内にあるはずです。
もしそうだとしたら、ちょっとした問題に遭遇することになります。ルートからモデルにアクセスする方法がわかりません。
これは私のコントローラーです (送信を押すとコンソールに「CREATED」と記録されます)。
App.ScoutsNewController = Ember.ObjectController.extend
submit: ->
model = @get('model')
model.on 'didCreate', ->
console.log 'CREATED' # I want to redirect to the index after creation
model.save()
そのロジックをルートに移動する必要がありますか? 試してみましょう:
App.ScoutsNewRoute = Ember.Route.extend
model: ->
App.Scout.createRecord()
events:
submit: ->
# Based on what I've read, the right place to put the code you see in the controller is here. How do I get access to the model?
# I have tried @get('model'), @get('content')
注: 送信イベントはビューからコントローラ、そして最後にルートにバブルアップし、"送信" が定義されているいずれかのルートで停止することを理解しています。ルートで処理したいので、コントローラを削除しました。console.log
ルートで実行された内容は確認できますが、モデル インスタンスにアクセスできれば十分です。
私は使用していますEmber v1.0.0-rc.5-7-g610589a
ありがとう!
ベストアンサー1
2つのオプション:this.currentModel
またはthis.modelFor(routeName)
アップデート
this.currentModel
これについて、Alex Matchneer 氏と話をしました。すぐに廃止する予定はありませんが、彼はthis.modelFor(this.routeName)
パブリック API を検討しています。