1

ユーザーがダイアログで変更を保存していない場合、別の場所に移動する前に警告したいと思います。

このチェックは、リンクをクリックするか、ハッシュを手動で変更したときに行われます。

これを達成する方法はありますか?

4

1 に答える 1

1

現在、Ember でトランジションを停止する方法はありません。明るい面では、この問題は現在 github で対処されています

解決されるのを待つか、必要に応じて手伝ってください。

その間、linkToヘルパーの代わりに手動アクションを使用して、コミットされていない変更があるかどうかを確認できます。

あなたのテンプレートで:

<a {{action goHome}}>Home</a>

あなたのルートで:

events: {
  goHome: function() {
    var isCommitted = !this.controllerFor('post').get('isDirty');
    if (isCommitted || confirm('You will lose your changes')) {
      this.transitionTo('home');
    }
  }
}

欠点は、リンク内の URL が失われることです。つまり、ユーザーは新しいタブでリンクを開くことができなくなります。

于 2013-02-22T10:00:56.053 に答える