我正在開發一個AngularJS webapp。 我有以下routeconfig:AngularJS:如何通過控制器中的服務方法傳遞id
$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;
});
});
ID未知,而我建立我的web應用程序。我做錯了什麼?
好的我明白了,我會試試它。 – Jonas
也可以使用'F1APIservice.getDriverDetails($ routeParams.id)' –
這也是一個選項。如果你不需要'$ scope'中存在的ID,那麼沒有理由從'$ routeParams'中重新分配它。 –