当用户点击非提交按钮的表单中的按钮时,如何触发angular-unsavedChanges指令以检查表单是否脏?如果用户点击了一个可以将其导航到另一个页面的按钮,如果对当前表单进行了更改,我希望弹出一条消息。它似乎适用于刷新和指向不同页面的链接,但不适用于将加载不同模板的按钮。 TIA。
答案 0 :(得分:0)
如果没有示例代码,我无法确定,但我认为,由于您使用的指令专门绑定到$locationChangeStart
事件,因此您可以尝试以下操作:
配置你的$ routeProvider来监控网址的变化(我想这已经是你在用SPA做的了,但如果我错了就纠正我)
$routeProvider
.when('/otherPage', {
templateUrl: 'partials/myOtherPage.html',
controller: 'OtherCtrl',
})
使用按钮点击按钮拨打$ location服务(不要忘记将其传递给您的控制器)
$scope.navigateToOtherPage = function() {
$location.path('/otherPage');
}
由于$ location
在更改网址之前立即触发$locationChangeStart
事件,因此您的指令应该能够捕获它并继续执行其预期的行为。