Angular - 当用户单击非提交按钮时触发unsavedChanges指令

时间:2014-10-02 13:17:08

标签: angularjs

当用户点击非提交按钮的表单中的按钮时,如何触发angular-unsavedChanges指令以检查表单是否脏?如果用户点击了一个可以将其导航到另一个页面的按钮,如果对当前表单进行了更改,我希望弹出一条消息。它似乎适用于刷新和指向不同页面的链接,但不适用于将加载不同模板的按钮。 TIA。

1 个答案:

答案 0 :(得分:0)

如果没有示例代码,我无法确定,但我认为,由于您使用的指令专门绑定到$locationChangeStart事件,因此您可以尝试以下操作: 配置你的$ routeProvider来监控网址的变化(我想这已经是你在用SPA做的了,但如果我错了就纠正我)

$routeProvider
    .when('/otherPage', {
        templateUrl: 'partials/myOtherPage.html',
        controller: 'OtherCtrl',
      })

使用按钮点击按钮拨打$ location服务(不要忘记将其传递给您的控制器)

$scope.navigateToOtherPage = function() {
    $location.path('/otherPage');
}

由于$ location在更改网址之前立即触发$locationChangeStart事件,因此您的指令应该能够捕获它并继续执行其预期的行为。