Я пытаюсь отправить идентификатор через контроллер, используя $ routeParams через завод, но он не работает.Угловой RouteParams отправить ID
Мои $ routeProvider:
.when('/event/:eventId', {
templateUrl : 'pages/event_detail.html',
controller : 'eventPageCtrl'
});
Моя фабрика:
myApp.factory('eventRepo', ['$http', function($http) {
var urlBase = 'php/api.php';
var eventRepo = {};
eventRepo.getEvent = function (id) {
return $http.get(urlBase + '?eventID=' + id);
};
return eventRepo;
}]);
Мой контроллер:
myApp.controller('eventPageCtrl', ['$scope', '$routeParams', 'eventRepo',
function ($scope, $routeParams, eventRepo) {
$scope.getEvent = function (id) {
eventRepo.getEvent($routeParams.eventId)
.success(function (data) {
$scope.eventsDetail = data;
})
.error(function (error) {
$scope.status = 'Error retrieving event! ' + error.message;
});
};
}]);
При обращении с $ http.get() внутри контроллера, а не с завод работает нормально, поэтому я думаю, что я не передаю свои $ routeParams правильно? Возможно, эта строка вызывает проблему eventRepo.getEvent($routeParams.eventId)
?
Это работает в настоящее время, но при попытке использовать $ http.get() вне контроллера:
myApp.controller('eventPageCtrl', function($scope, $http, $routeParams) {
$http.get("php/api.php?eventID="+$routeParams.eventId).success(function(data){
$scope.eventsDetail = data;
});
});
Вы пытались console.log '$ routeParams.eventId' в' $ scope.getEvent'? – dfsq
Что на самом деле не работает? Проходит ли это 'undefined'? Что вызывает функцию $ scope.getEvent? –
Ваш api.php получает 'eventID' или' eventId'? – Matho