AngularJS $locationProvider.search()会导致Uncaught Object错误

AngularJS $locationProvider.search() results in Uncaught Object error

本文关键字:Uncaught Object 错误 locationProvider search AngularJS      更新时间:2023-09-26

在AngularJS中,当尝试使用$locationProvider来解析查询字符串时,我得到了一个错误。AngularJS文档说locationProvider还没有从核心移动,所以我想知道为什么下面的代码不工作。它设置html5Mode很好,但它就像搜索方法不存在。

var myApp = angular
    .module('agencyMatrix', ['ngRoute']);
myApp.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){
    $locationProvider.html5Mode(false);
    var location = $locationProvider.search();
}

search()实际上定义在$location上,而不是$locationProvider上。

查看$location文档和源代码:angular.js/src/ng/location.js

要使用$location.search,可以在run中访问它,而不是config:

var myApp = angular
    .module('agencyMatrix', ['ngRoute']);
myApp.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){
    $locationProvider.html5Mode(false);
}]).run(['$location', function($location) {
    var location = $location.search();
}])

angular文档中的提供者指南(特别是Provider Recipe部分)描述了配置阶段以及它与其他阶段的区别(例如,$location本身在配置阶段不可用)。

相关文章: