0

.run我的应用程序的主模块部分,我有一个事件的事件处理程序$locationChangeStart。我想使用它来确认丢弃未保存的更改。问题是我需要参考$scope才能执行这些检查。

我在为 . 添加引用时尝试添加该引用$rootScope,但出现错误Uncaught Error: Unknown provider: $scopeProvider <- $scope

我该怎么做?我对替代品持开放态度。

.run(['$rootScope', '$location', function ($rootScope, $location) {
    $rootScope.$on("$locationChangeStart", function (event, next, current) {
        if ($scope.unsavedChanges && !confirm('Unsaved changes') {
            event.preventDefault();
        }
    });
 }
4

2 回答 2

1

您只能将实例(而不是提供者)注入run块中。这是来自module的文档。

angular.module('myModule', []).
    run(function(injectables) { // instance-injector
        // This is an example of a run block.
        // You can have as many of these as you want.
        // You can only inject instances (not Providers)
        // into the run blocks
    });

所以你将无法注入$scopeProvider

于 2013-08-30T14:17:17.133 回答
0

您可以将 $scope 注入到您的函数中,例如;

 .run(['$rootScope', '$location', '$scope', function ($rootScope, $location, $scope)
于 2013-08-30T11:47:59.787 回答