Я пытаюсь отправить идентификатор контроллеру, используя $routeParams через фабрику, но он не работает.
Мой $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;
});
});
$routeParams.eventId
в$scope.getEvent
? - person dfsq   schedule 20.05.2015undefined
? Что запускает функцию$scope.getEvent
? - person Ben Felda   schedule 20.05.2015eventID
илиeventId
? - person Matias Fernandez Martinez   schedule 20.05.2015