TypeError:无法读取$ location.search()的undefined属性'search'

时间:2016-03-21 07:38:26

标签: angularjs

如何在params:下面的列表中获得以下参数。我收到以下错误,

TypeError: Cannot read property 'search' of undefined
    at Object.async (abcd.html?kId=pqr)

URL:

http://localhost:8080/.........../abcd.html?kId=pqr

代码:

var app = angular.module('angModule', [], function($locationProvider) {
    $locationProvider.html5Mode(true);
});
app.factory(
    'myService',
    function($http,$location) {
        return {
            async : function() {
                return $http
                    .get('http://localhost:8080/...........,,,,./...',{params:{"kId": $location.search()['kId'] }});
                }
            };
        });

1 个答案:

答案 0 :(得分:1)

我认为你没有正确定义服务,这就是$location未定义的原因。你必须使用符号:

batchModule.factory('myService', ['$interval', '$log', function($interval, $log) {

参见"依赖关系" https://docs.angularjs.org/guide/services中的部分。在你的情况下,将是:

app.factory('myService', ['$http', '$location', function($http, $location) {
    // ...
}]);