我收到此错误未知提供商:$ scopeProvider< - $ scope
以下app.js
(function() {
angular.module('MyApp', ['ngRoute', 'satellizer'])
.config(function($routeProvider, $locationProvider, $authProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {
templateUrl: 'partials/home.html'
})
})
.run(function($rootScope, $scope, $window, $location) {
if ($window.localStorage.user) {
$rootScope.currentUser = JSON.parse($window.localStorage.user);
}
$scope.test = 'test';
});
})();
答案 0 :(得分:1)
您无法将$scope
注入应用程序运行功能。
您只能将$ rootScope注入服务并运行函数,因为每个子作用域都是从其父作用域继承的,而顶级作用域是rootScope。因为注入任何范围都是不明智的。仅提供根范围。
https://stackoverflow.com/a/17371896/3453034
以下是有关从Angular's module documentation获取的运行块的一些信息:
运行块是Angular中与main方法最接近的东西。运行块是需要运行以启动应用程序的代码。在配置完所有服务并创建注入器后执行。运行块通常包含难以进行单元测试的代码,因此应在隔离模块中声明,以便在单元测试中忽略它们。
您可以在运行方法中设置$rootScope.test = "test"
,将$rootScope
注入控制器,然后通过$rootScope
直接在控制器中访问它。