gpt4 book ai didi

javascript - $routeParams 在 angularjs 中未定义?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:02:15 25 4
gpt4 key购买 nike

我正在对 json 文件进行 http 调用。在第一个 Controller 中,我获得了类别,在第二个 Controller 中,我获得了具有特定 ID 的类别。

url 更新为 categoryid 但 $routeParams 显示为未定义且无法访问该文件。

这是我的代码:

$stateProvider.state('categories', {
url: '/category',
templateUrl: 'templates/categories.html',
controller: 'CategoriesCtrl'
});
$stateProvider.state('postC', {
url: '/category/:category',
templateUrl: 'templates/postsc.html',
controller: 'PostCtrl'
});

在 Controller 中我有以下内容:

angular.module('myapp')

.controller('CategoriesCtrl', ['$scope', '$http',
function($scope, $http) {
$http.get("~/wp/v2/terms/category")
.then(function(res) {
$scope.categories = res.data;
})
}
])

.controller('PostCtrl', ['$scope', '$http', '$routeParams',
function($scope, $http, $routeParams) {
$http.get("~/wp/v2/terms/category/" + $routeParams.category).success(function(res) {

$scope.current_category_id = $routeParams.category;
console.log($routeParams.category);
$scope.pageTitle = 'Posts in ' + res.data.name + ':';
document.querySelector('title').innerHTML = 'Category: ' + res.data.name + ' | AngularJS Demo Theme';

$http.get("~/wp/v2/posts/?filter[category_name]=" + res.data.name).success(function(res) {
$scope.posts = res.data;
console.log($scope.posts);
})

})
}
]);

类别的 View 如下:

<div class="list">
<a ng-repeat="category in categories" href="#/category/{{category.id}}" class="item item-thumbnail-left">
<h2>{{category.name}}</h2>
</a>
</div>

当我点击类别时,URL 变为:http://localhost:8100/#/category/12 , 但 ~/wp/v2/terms/category/"+ $routeParams.category 中的 $stateparams.category 未定义,因此 http 请求无法通过。

我不知道我错过了什么?

最佳答案

尝试在每个实例中将 $routeParams 更改为 $stateParams。您显然正在使用 ui-router,它使用“states”,而 ngRouter 使用“routes”。

angular.module('myapp')

.controller('CategoriesCtrl', ['$scope', '$http',
function($scope, $http) {
$http.get("~/wp/v2/terms/category")
.then(function(res) {
$scope.categories = res.data;
})
}
])

.controller('PostCtrl', ['$scope', '$http', '$stateParams',
function($scope, $http, $stateParams) {
$http.get("~/wp/v2/terms/category/" + $stateParams.category).success(function(res) {

$scope.current_category_id = $stateParams.category;
console.log($stateParams.category);
$scope.pageTitle = 'Posts in ' + res.data.name + ':';
document.querySelector('title').innerHTML = 'Category: ' + res.data.name + ' | AngularJS Demo Theme';

$http.get("~/wp/v2/posts/?filter[category_name]=" + res.data.name).success(function(res) {
$scope.posts = res.data;
console.log($scope.posts);
})

})
}
]);

关于javascript - $routeParams 在 angularjs 中未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34351218/

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