ビューレベルでこれを行うべきではありません。これはルーターが設計されているため、ビューでクリックイベントをキャプチャする代わりに、ボタンにアクションを実装してルーターに処理させます。最初からベストプラクティスを学ぶことをお勧めします。アプリケーションが進化する可能性があり、トランザクションのコミット/ロールバックの処理、レコードの作成/更新など、より複雑な概念が必要になります。だからここにあなたへの私の提案があります
あなたの見解では
<button type="button" {{action onSaveClick}} />Save</button>
ルーターで
App.FooRoute = App.Route.extend({
events: {
onSaveClick: function() {
this.transitionTo('bar');
}
}
})
スタイリングやアニメーションなど、その他の理由で、ビューでクリックイベントをキャプチャする必要がある場合は、イベントをキャプチャしてスタイリングを実行し、最後にコントローラーにイベントを送信することをお勧めします。その後、イベントはルーターで同じように処理できます
App.FooView = Ember.View.extend({
click: function() {
// Do some styling
this.get('controller').send('onSaveClick')
}
})
最後に、ベストプラクティスについて言えば、残り火で作業するときに、アプリケーションを相互作用する一連の状態として考えるようにしてください。コンセプトを正しく実装する必要があります。これを見てください