ссылка на следующую страницу при использовании внешних данных не работает - Ionic - AngularJS

Я новичок в ionic и angularjs, и я не уверен, где я ошибаюсь. Я пытаюсь получить json по внешней ссылке. он возвращает данные и отображает их в полном порядке, но когда я нажимаю на один из параметров в возвращаемом списке, он не перенаправляется на страницу сведений об уведомлении. все работает нормально, если данные json жестко закодированы, но я этого не хочу. это контроллер и служба для обработки списка и ссылок:

.service('NoticeboardService', function($q, $http) {
   mynotices = $http.get('http://.../app/noticeboard.php').then(function(response){    
            console.log(response.data)          
            return response.data
          })
   return {
      notices: mynotices, // if i change this so that it is hard-coded in the links work
      getNotices: function() {
      return this.notices
   },
   getNotice: function(noticeId) {
      var dfd = $q.defer()
      this.notices.forEach(function(notice) {
         if (notice.id === noticeId) dfd.resolve(notice)
      })

      return dfd.promise
   }

}
})

.controller('NoticesCtrl', function($scope, notices) {
    $scope.notices = notices
})

.controller('NoticeCtrl', function($scope, notice) {
    $scope.notice = notice
})

образец из данных, которые я показываю:

[
  {

  "id": "1",
  "title": "Notice one",
  "content": null,
  "image": "uploads/news_images/2d3a24b738430c94f3.png",
  "date": "November 20, 2015, 3:19 pm"

  },
  {

  "id": "2",
  "title": "Notice Item",
  "content": null,
  "image": "uploads/news_images/6ff8308fd9f2a7baf3.png",
  "date": "November 20, 2015, 3:21 pm"

  }
]

когда я использую console.log('notices:', mynotices);, возвращается следующее: notices: Object { $$state: Object } почему он не возвращает массив объектов?


person AN11    schedule 15.02.2016    source источник


Ответы (1)


Я исправил проблему, изменив службу на следующую. Для этого я использовал эту ссылку на помогите мне решить это. я не совсем уверен, почему мой исходный код не работал, но теперь это работает:

.service('NoticeboardService', function($q, $http) { 

  var notices = [];

  return {
    getNotices: function(){
      return $http.get("http://fitnexus.com/app/noticeboard.php").then(function(response){
         notices = response.data;
         return notices;
      });
    },
    getNotice: function(noticeId){
      for(i=0;i<notices.length;i++){
         if(notices[i].id == noticeId){
            return notices[i];
         }
      }
      return null;
   }
 }
})
person AN11    schedule 18.02.2016