javascript-AngularJS:如何通过控制器中的服务方法传递id

我正在开发AngularJS网络应用程序.
我有以下routeconfig:

  $routeProvider.
    when("/drivers", {templateUrl: "partials/drivers.html", controller: "driversController"}).
    when("/drivers/:id",{templateUrl: "partials/driver.html", controller: "driverController"}).
    otherwise({redirectTo: '/drivers'});
}]);

因此,为了传递JSON的ID,我在service.js文件中使用以下方法

F1API.getDriverDetails = function(id) {
        return  $http({
            method: 'JSONP', 
            url: 'http://localhost:8000/app/data/' + id + '/driverStandings.json?callback=JSON_CALLBACK'
        });
    }

    F1API.getDriverRaces = function(id) {
        return  $http({
            method: 'JSONP', 
            url: 'http://localhost:8000/app/data/' + id + '/results.json?callback=JSON_CALLBACK'
        });
    }

    return F1API;
  });

但是现在有一部分我被卡住了.我需要此方法在一个对象中分配驾驶员及其种族.但我需要此ID,因此我尝试在controller.js中

/* Driver controller */
controller('driverController', function($scope, $routeParams, F1APIservice) {


    $scope.id = $routeParams.id;
    $scope.races = [];
    $scope.driver = null;

    F1APIservice.getDriverDetails(id).success(function(response){
      $scope.driver = response.MRData.StandingsTable[0].DriverStandings[0];
    });

    F1APIservice.getDriverRaces(id).success(function(response){
      $scope.races = response.MRData.RaceTable.Races;
    });
});

当我构建Web应用程序时,Id是未知的.我做错了什么?

解决方法:

在您的控制器中,将$routeParams.id分配给$scope.id,但随后仅使用id(未定义)调用getDriverDetails和getDriverRaces.您需要这样调用它们:getDriverDetails($scope.id).

上一篇:MVC中View往Controllers传数据的方式-已发


下一篇:javascript – 如何让AngularJS的智能表中的第一页和最后一页跳过按钮