-1

オブジェクトを編集するためのフォームを備えた emberjs アプリがあります。
このページには、データをデータベースに保存する [保存] ボタンがあります。

オブジェクトがダーティで、ユーザーがアプリ内の別のパスに遷移しようとしている場合は、それについて警告し、確認を拒否した場合は遷移をキャンセルする必要があります。

App.ObjectEditRoute = Ember.Route.extend
  exit: ->
    if @get('model.isDirty')
      if confirm('All your changes will be lost')
        # We just keep rolling the chain of events and do the transition
      else
        # We want to cancel the transition

ただし、exit メソッドから遷移をキャンセルする方法はないようです。

4

1 に答える 1

1

ルーターの改良以来、これは willTransition イベントを使用して非常に簡単に行うことができます。

App.ObjectEditRoute = Ember.Route.extend
  events:
    willTransition ->
      if @get('model.isDirty')
        if confirm('All your changes will be lost')
          transition.perform()
        else
          transition.abort()
于 2013-08-07T13:41:55.913 に答える