I'm a newbie at angular and am trying to pass data into a controller based on a link being clicked by the user. I'm using angular-ui routing but the controller is only ever called once and I suspect I may have structured my solution incorrectly. What is wrong with the current solution? I'm beginning to believe I maybe better passing the service into the controller and using ng-click on the links in the HTML? Advice would be appreciated.
ServiceDeskApp.factory("storiesService", function($http){
return {
getMyStories: function(){
return $http.get('/stories');
},
getMyRequestedStories: function(){
return $http.get('/stories?type=requester_id');
},
getMyOwnedStories: function(){
return $http.get('/stories?type=owner_id');
},
getMyTestingStories: function(){
return $http.get('/stories?type=tester_id');
}
}
});
$stateProvider
.state('stories', {
url:"/stories",
templateUrl: "views/stories/index.html",
controller: 'StoriesCtrl',
resolve:{
stories: function(storiesService){
return storiesService.getMyStories();
}
}
})
.state('stories.requester_id', {
url:"/stories/request",
templateUrl: "views/stories/index.html",
controller: 'StoriesCtrl',
resolve:{
stories: function(storiesService){
return storiesService.getMyRequestedStories();
}
}
})
.state('stories.owner_id', {
url:"/stories/own",
templateUrl: "views/stories/index.html",
controller: 'StoriesCtrl',
resolve:{
stories: function(storiesService){
return storiesService.getMyOwnedStories();
}
}
})
.state('stories.tester_id', {
url:"/stories/test",
templateUrl: "views/stories/index.html",
controller: 'StoriesCtrl',
resolve:{
stories: function(storiesService){
return storiesService.getMyTestingStories();
}
}
});
});
ServiceDeskApp.controller('StoriesCtrl', function( $scope, stories ){
console.log('inside stories controller');
$scope.stories = stories.data;
});