AngularJS中的RouteParams

时间:2015-05-19 03:19:37

标签: javascript angularjs routes

我正在尝试将一个routeParam传递给我的Angular控制器中的$ http.post,但我似乎没有正确传递该值。这是我在下面的内容。我没有正确使用$ routeParams吗?使用$scope.event_id = $routeParams.eventId;时,部分页面会以Event: {{event_id}}或事件:5正确呈现。

我需要$ http.post为php/getItem.php?itemID=5

传递event_id的HTML:

<a href="#/{{event.event_id}}">{{event.event_name}}</a>

routeProvider:

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>

1 个答案:

答案 0 :(得分:0)

首先检查

console.log($routeParams.eventId);

正确地在控制台上打印event_id。

,然后

请注意,您使用POST请求但url GET请求。

更改下面的请求并尝试

 $http({
    url: 'php/getItem.php',
    method: "POST",
    data: { itemID : $routeParams.eventId },        
}).succes...

OR

 $http.post('php/getItem.php', { itemID:$routeParams.eventId }).success...

在这里你可以获得Php中的数据,

$data = json_decode(file_get_contents("php://input"));

$data->itemID // to access name

OR

 $http({
    url: 'php/getItem.php',
    method: "POST",
    data: { itemID : $routeParams.eventId },   
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},     
}).succes...

在Php中,

$name= $_POST['itemID'];

可能是post可以帮助你。