如何访问嵌套类别数据并在我的控制器中引用它?

时间:2016-11-06 21:00:45

标签: angularjs http ionic-framework controller wp-api

我正在使用WP Rest API创建一个Ionic应用程序。我已经返回了帖子数据,但我还希望获得类别名称。帖子的JSON数据仅包含类别ID。我正在尝试访问类别ID并在我的控制器中引用它以获取类别数据,以便通过ID获取类别名称。

My controller looks like this:
svampeApp.controller('PostCtrl', function ($scope, svampeApi, $stateParams) {

//Individual Post Controller
console.log("$stateParams", $stateParams);

$scope.posts = [];
$scope.categoryId = [];

$scope.id = $stateParams.id;

svampeApi.getPostData($scope.id).then(function (succ) {
  $scope.posts = succ;
  $scope.categoryId = succ.categories;
}, function(err) {
  console.log('Error: ', err);
});

console.log("Category Object", $scope.categoryId);

//Getting the category ID to display the category name
$scope.categories = [];    

svampeApi.getCategoryData($scope.categoryId).then(function (succ) {
  $scope.categories = succ;
}, function(err) {
  console.log('Error: ', err);
});

});

有了这一行,我应该得到类别ID,因为它存储在Post对象中:

$scope.categoryId = succ.categories;

但是,当我使用ID对类别名称进行第二次api调用时,出现错误。

svampeApi.getCategoryData($scope.categoryId).then(function (succ) {
  $scope.categories = succ;
}, function(err) {
  console.log('Error: ', err);
});

如何在作用域中保存单个帖子的类别ID,以便我可以在第二次api通话中访问它?这些类别包括我想通过以下方式访问的类别名称:

<p>
  {{categories.name}}
</p>

类别对象为空:

Category Object []

我希望你能帮助我。

1 个答案:

答案 0 :(得分:1)

请澄清:您是从服务器获取类别名称还是从第一次服务器调用(包括类别ID)嵌入JSON?我没有看到任何REST / Ajax调用。注意:您的服务器调用是异步的,因此在保证类别ID服务器调用完成之前,您无法调用从服务器获取类别名称。这意味着你需要将你的承诺联系起来。