Показать сообщение отдельно
  #1 (permalink)  
Старый 14.12.2017, 22:43
Аспирант
Отправить личное сообщение для kingstakh Посмотреть профиль Найти все сообщения от kingstakh
 
Регистрация: 21.02.2014
Сообщений: 37

Замена статических данных JSON на $HTTP запрос в AngularJS
Доброго всем!
Долго уже борюсь с плагином под Ionic, который позволяет использовать директиву свайпа слайдов как табы в Material Design. Никак не получается подружить его с API Wordpress. Знаний в Angular чуть больше 0, поэтому рассчитываю на помощь сообщества.

Ссылочка на плагин: https://market.ionicframework.com/plugins/swiped-tab



Рабочий пример: http://play.ionic.io/app/f518c3cb3825

Собственно работает он с JSON данными следующим образом: берет данные из catgs, где name - это табы, а items соответственно содержание табов.

Пытался заменить var cats на $http запрос данных API блога на вордпресс, но ничего не вышло, не работает. В логе данные приходят, но табы не формируются.

Теперь немного о моей "хотелке": нужно каким-то образом переделать фэктори catgs, чтобы табы формировались из $http запроса к API вордпресс категорий, например:http://demo.wp-api.org/wp-json/wp/v2/categories. А содержание (посты) формировались из другого запроса http://demo.wp-api.org/wp-json/wp/v2/posts?categories=<ID>, где ID это ID категории из первого запроса для табов.
Например, посты из категории 1: http://demo.wp-api.org/wp-json/wp/v2/posts?categories=1

Пытался получить хотя бы категории таким образом:

angular.module('starter.services', [])    
        .factory('catgs', function($http) {
          var catgs = null;    
          return {
            all: function() {
              if(catgs != null)
              return catgs;
              $http.get('http://demo.wp-api.org/wp-json/wp/v2/categories/').then(function(res){
               catgs = res.data;//
               console.log (catgs);
               return catgs;
             })
            },
            remove: function(catg) {
              catgs.splice(catgs.indexOf(catg), 1);
            },
            get: function(catgId) {
              for (var i = 0; i < catgs.length; i++) {
                if (catgs[i].id === parseInt(catgId)) {
                  return catgs[i];
                }
              }
              return null;
            }
          };
        });


В логе данные есть, но табы не формируются

Фух, надеюсь не очень страшно все описал

Последний раз редактировалось kingstakh, 14.12.2017 в 22:47.
Ответить с цитированием