当用户在对话框中有未保存的更改时,我想在他可以转移到其他地方之前警告他。
当他点击链接或手动更改哈希时,应该进行此检查。
有没有办法实现这个呢?
答案 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');
}
}
}
缺点是,您将丢失链接中的网址,这意味着用户无法在新标签中打开链接。