Javascript 使用run()函数检查状态更改开始时表单是否脏

Javascript 使用run()函数检查状态更改开始时表单是否脏,javascript,angularjs,forms,angularjs-scope,angular-ui-router,Javascript,Angularjs,Forms,Angularjs Scope,Angular Ui Router,我使用angular ui router定义状态,我希望检查当前状态下的表单是否脏,并在用户在ui路由器状态之间导航时提示用户。当用户试图从一个状态导航到另一个状态时,我想检查当前状态下的表单是否原始,并提示他是否真的要传播到下一个表单。我已经编写了一个通用的run函数来处理这个问题 angular.module('module') .run(function ($rootScope, $compile, $templateRequest) { $rootScope.$on('$stat

我使用angular ui router定义状态,我希望检查当前状态下的表单是否脏,并在用户在ui路由器状态之间导航时提示用户。当用户试图从一个状态导航到另一个状态时,我想检查当前状态下的表单是否原始,并提示他是否真的要传播到下一个表单。我已经编写了一个通用的run函数来处理这个问题

angular.module('module')
.run(function ($rootScope, $compile, $templateRequest) {
    $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
        if (fromState.name.length > 0) {
            $templateRequest(fromState.templateUrl)
                .then(function (html) {
                    var compiledElement = $compile(html)($rootScope);
                    console.log(compiledElement.find('form'));
                });

        }
        if (fromState.name.length > 0 && !confirm('You have unsaved changes, go back?'))
            event.preventDefault();
    });
});
我想获取当前UI路由器状态的范围,以便检查表单的原始状态或任何其他方式,以了解当前状态下的表单是否脏