获取$rootScope事件处理程序的$scope引用
Get $scope reference on $rootScope event handler
在应用程序主模块的.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();
}
});
}
您只能将实例(而不是提供程序)注入到run
块中。这来自模块的文档。
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
。
您可以将$scope注入到您的函数中,如;
.run(['$rootScope', '$location', '$scope', function ($rootScope, $location, $scope)
相关文章:
- 引用对象中的通用值
- 如何在JavaScript中将字符串转换为函数引用
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- AngularJS:ng之后,重复$scope值未按预期更新
- 在动态创建的元素上获取对特定选择器的引用
- 强制DOM在$scope模型对工厂模型的引用发生更改时进行渲染
- 未捕获的引用错误:未定义$scope - AngularJS
- 通过引用传递$scope变量以函数
- AngularJS将字符串转换为引用$scope中的对象的对象/数组
- JavaScript Scope:引用任意新对象的计时器
- 从$http请求角度中引用$scope变量
- 获取$rootScope事件处理程序的$scope引用
- 在没有$scope的指令中引用作用域变量
- & # 39;这个# 39;真正的引用"$scope"在AngularJS'
- 在angularjs中的$scope成员函数中引用函数中的变量
- 无法在AngularJS的$scope中引用类成员(Array)
- 将指向服务对象属性的指针/引用添加到$scope变量
- AngularJS-为什么$scope.properties's的值在更改引用它的变量时发生更改
- 在$scope中丢失此引用$在活动中
- 使用 vm 而不是 $scope 引用指令属性