Я новичок в Angular JS и изо всех сил пытаюсь вернуть фабрику данные, когда мой URL-адрес изменился.AngularJS - фабрика не вызывается при изменении URL-адреса
В моем приложении конфиге у меня есть:
.state('app.sessionActivity', {
url: "/session/:sessionid/activity/:id",
views: {
'menuContent' :{
templateUrl: "templates/activity.html",
controller: 'SessionActivityCtrl'
}
}
})
Мой контроллер:
.controller('SessionActivityCtrl', ['$scope', '$stateParams', 'localJSONData', function($scope, $stateParams, localJSONData) {
var activityID = $stateParams.id;
var activityVideoURLSRC = null;
localJSONData.getJSONData()
.success(function(data){
$scope.activityData = data[activityID - 1];
});
}])
Моя фабрика:
.factory('localJSONData', ['$http', '$stateParams', function($http, $stateParams){
var sessionID = $stateParams.sessionid;
return {
getJSONData: function(){
if(sessionID == 1){
return $http.get('json/session1_activities.json', {cache:false});
}
if(sessionID == 2){
return $http.get('json/session2_activities.json', {cache:false});
}
}
}
}])
Это все работает, когда я сначала загрузить страницу и перейти к URL (например)/session/1/activity/1 в первый раз. Но затем, когда я загружаю URL (например)/session/2/activity/2, данные взяты из сеанса 1. Когда я отлаживаю хром, фабрика не получает вызов во второй раз.
Я не получаю что-то концептуально, не используя правильные методы, или есть ошибки в моем коде?
Отлично, это работает. Спасибо! – aritchie