【发布时间】:2015-05-19 03:19:36
【问题描述】:
我正在尝试将 routeParam 传递给 Angular 控制器中的 $http.post,但我似乎没有正确传递值。这是我下面的内容。没有正确使用 $routeParams 吗?使用 $scope.event_id = $routeParams.eventId; 时,部分页面会正确呈现 Event: {{event_id}} 或 Event: 5 例如。
我需要 $http.post 是 php/getItem.php?itemID=5
传递 event_id 的 HTML:
<a href="#/{{event.event_id}}">{{event.event_name}}</a>
路由提供者:
var pvApp = angular.module('pvApp', ['ngRoute']);
// configure our routes
pvApp.config(function($routeProvider) {
$routeProvider
// route for the home page
.when('/', {
templateUrl : 'pages/home.html',
controller : 'mainController'
})
.when('/:eventId', {
templateUrl : 'pages/event_detail.html',
controller : 'eventController'
});
});
控制者:
pvApp.controller('eventController', function($scope, $http, $routeParams) {
// $scope.event_id = $routeParams.eventId;
$http.post("php/getItem.php?itemID="+$routeParams.eventId).success(function(data){
$scope.items = data;
});
});
部分页面:
<div class="container">
<div class="row">
<div class="col-lg-12">
<h2>Event: {{event_id}}</h2>
</div>
</div>
</div>
【问题讨论】:
-
你能解释一下问题是什么吗?检查浏览器的 Network 控制台以查看 POST 请求是否正确以及响应是什么。您确定要使用 POST 吗?您似乎没有传递任何数据
-
网络控制台显示
getItem.php?itemID=5已列出,所以我认为我的问题在于<h2>Event: {{event_id}}</h2>等输出,也许这是格式不正确? -
...响应是什么样的?为什么要使用 POST?
-
响应正是我需要的——来自 MySQL 的 JSON。更改为 GET 和相同的响应。使用
$item_id = $_GET['itemID'];when 将其传递给 getItem.php -
那么问题出在哪里?您似乎没有在任何地方使用
$scope.items。如果您将console.log(data)放入您的success回调中,记录的值是否正确/是否已记录?
标签: javascript angularjs routes