在我的应用程序主模块的.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();
}
});
}
在任何其他控制器执行之前,运行块像主要方法一样运行。你怎么能注入你自己将来确定的依赖。注射发生在施工时,所以应该可以注入依赖性。 – Chandermani
你是说我应该使用$ inject? –
为什么不使用工厂/服务? – noj