正如问题中所述,$location
点的控制器无法访问debugger
服务。
$(document).ready(function() {
return angular.module('dashboard.controllers').controller(
'projectController',
['$route', '$routeParams', '$scope', '$location', '$rootScope',
'ProjectDataService', 'UserService',
function($route, $routeParams,$scope, $location, $rootScope,
ProjectDataService, UserService)
{
return ProjectDataService.loadProjectData().then(function(d) {
$scope.projectSearch = "";
$scope.projects = ProjectDataService.getProjectData();
debugger;
});
}
]);
});
答案 0 :(得分:1)
这里的罪魁祸首是Closures。我建议您快速查看Mozilla's MDN article on the topic。
在您的情况下,传递给then()
的匿名函数是闭包。由于您没有在匿名函数的范围内使用$location
,因此在执行匿名函数时它不可用。因此,您无法在调试器中看到该值。
如果您在匿名函数的范围内使用$location
,那么您将在调试器中看到它在范围内可用。