gpt4 book ai didi

javascript - Angularjs 中 $location 上的 Url 重定向问题 - 无法读取未定义的属性 'path'

转载 作者:行者123 更新时间:2023-11-27 22:35:02 26 4
gpt4 key购买 nike

我是 AngularJS 的新手,我正在尝试运行这个 AngularJS,当我单击提交按钮时,它应该修改 URL,而无需重新加载页面,但在控制台中我收到 TypeError: Cannot read property 'path' of undefined。

无法真正看出我在哪里错过了 $location 注入(inject)。可能是什么问题呢?

var app = angular.module("SearchAPP", ['ngRoute']);

app.run(['$route', '$rootScope', '$location',
function($route, $rootScope, $location) {
var original = $location.path;
$location.path = function(path, reload) {
if (reload === false) {
var lastRoute = $route.current;
var un = $rootScope.$on('$locationChangeSuccess', function() {
$route.current = lastRoute;
un();
});
}
return original.apply($location, [path]);
};
}
]);

app.controller('GetController', ['$http', '$scope', '$location',
function($http, $scope, $rootScope, $location) {

$scope.click = function() {

var response = $http({
url: 'http://localhost:4567/search',
method: "GET",
params: {
keyword: $scope.searchKeyword
}
});

response.success(function(data, status, headers, config) {
$scope.searchResults1 = data;
// $http.defaults.useXDomain = true;
$location.path('/' + $scope.searchKeyword, false);
});

response.error(function(data, status, headers, config) {
alert("Error.");
});
};
}
]);

最佳答案

DI 数组中的依赖顺序错误,DI 数组第三个参数中缺少 $rootScope。确保注入(inject)的依赖项应在 Controller 函数中以相同的顺序使用

//                                                  VVVVVVVV $rootscope was missing
app.controller('GetController', ['$http', '$scope', '$rootScope','$location',
function($http, $scope, $rootScope, $location) {

关于javascript - Angularjs 中 $location 上的 Url 重定向问题 - 无法读取未定义的属性 'path',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39190762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com