当用户在对话框中有未保存的更改时,我想在他可以转换到其他地方之前警告他。
当他单击链接或手动更改哈希时,应该进行此检查。
ember有没有办法实现这一点?
目前无法在 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,这意味着用户将无法在新选项卡中打开链接。