簡體   English   中英

從預期對象響應中提取角度數組

[英]Angular extract array from expected object response

我正在使用wordpress的rest api,並且正在提取允許用戶查看單個帖子的帖子列表。 現在,我也想添加評論,但是我無法對此發表意見。 我正在使用工廠進行通話:

.factory('Articles', function ($http) {
    var articles = [];
       storageKey = "articles";

    function _getCache() {
        var cache = localStorage.getItem(storageKey );
        if (cache)
            articles = angular.fromJson(cache);
    }


    return {
        all: function () {
            return $http.get("http://www.examplesite.com/tna_wp/wp-json/posts?filter[category_name]=test").then(function (response) {
                articles = response.data;
                console.log(response.data);
                return articles;
            });
        },

        get: function (articleId) {
            if (!articles.length) 
                _getCache();
            for (var i = 0; i < articles.length; i++) {
                if (parseInt(articles[i].ID) === parseInt(articleId)) {
                    return articles[i];
                }
            }
            return null;
        }
    }
})

我的控制器:

.controller('ExampleCtrl', function ($scope, $stateParams, _, Articles) {
  $scope.articles = [];
  Articles.all().then(function (response){
      $scope.articles = response;
      window.localStorage.setItem("articles", JSON.stringify(response));
  }, 

  function (err) {
     if(window.localStorage.getItem("articles") !== undefined) {
        $scope.articles = JSON.parse(window.localStorage.getItem("articles"));
      }
    }
  );
  $scope.doRefresh = function() {
    Articles.all().then(function (articles){
      var loadedIds = _.pluck($scope.articles, 'id');
      var newItems = _.reject(articles, function (item){ 
         return _.contains(loadedIds, item.id); 
    });
      $scope.articles = newItems.concat($scope.articles);
      $scope.$broadcast('scroll.refreshComplete');
    });
  };

})






//THIS IS WHERE I AM TRYING AND FAILING
.controller('ExampleInnerCtrl', function ($http, $scope, $stateParams, $cordovaSocialSharing, $ionicModal, Articles) {
  $scope.article = Articles.get($stateParams.articleId);
   var url = Articles.get($stateParams.articleId);


  $scope.comments = [];

  $http.get("http://www.example.com/tna_wp/wp-json/posts/" +url+ "/comments").then(function (response, commentId) {
      $scope.comments = response.data;

      console.log(response.data);
      return $scope.comments;
  });

  $scope.comment = $stateParams.commentId;




  $ionicModal.fromTemplateUrl('gauteng-comments.html', {
    scope: $scope,
    animation: 'slide-in-up'
  }).then(function(modal) {
    $scope.modal = modal
  })  

  $scope.openModal = function() {
    $scope.modal.show()
  }

  $scope.closeModal = function() {
    $scope.modal.hide();
  };

  $scope.$on('$destroy', function() {
    $scope.modal.remove();
  });

  $scope.sharePost = function(link){
    window.plugins.socialsharing.share('I just read this article on The New engage: ', null, null, "http://example.com" + link);
  };

})

現在在控制器中,如果我手動添加了帖子ID,則可以獲取該帖子的評論,但是我似乎無法將該帖子ID存儲在要使用的變量中

- - - - 編輯

.config(function ($stateProvider, $urlRouterProvider) {

  $stateProvider

  .state('app', {
    url: "/app",
    abstract: true,
    templateUrl: "templates/menu.html",
    controller: "NavCtrl"
  })

    .state('app.home', {
      url: "/home",
      views: {
        'menuContent': {
        templateUrl: "templates/home.html"
        }
      }
    })

    .state('app.provinces', {
      url: "/provinces",
      views: {
        'menuContent': {
        templateUrl: "templates/provinces.html"
        }
      }
    })

    .state('app.example', {
      url: "/provinces/example",
      views: {
        'menuContent': {
        templateUrl: "templates/example.html",
        controller: "ExampleCtrl"
        }
      }
    })

    .state('app.exampleSingle', {
      url: "/provinces/example/:articleId",
      views: {
        'menuContent': {
        templateUrl: "templates/exampleSingle.html",
        controller: "ExampleInnerCtrl"
        }
      }
    })

;

   $urlRouterProvider.otherwise("/app/home");
});

好的,這是我的愚蠢……我只是將變量存儲為: var url = $scope.article.ID;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM