Ember.js:如何防止用户退出脏对话框?

时间:2013-02-22 08:17:33

标签: ember.js

当用户在对话框中有未保存的更改时,我想在他可以转移到其他地方之前警告他。

当他点击链接或手动更改哈希时,应该进行此检查。

有没有办法实现这个呢?

1 个答案:

答案 0 :(得分:1)

目前无法停止Ember的过渡。从好的方面来看,这个问题是currently being addressed on 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');
    }
  }
}

缺点是,您将丢失链接中的网址,这意味着用户无法在新标签中打开链接。