2016-11-06 23 views
0

我正在用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 [] 

我希望你能幫助我。

+0

請澄清:您是從服務器獲取類別名稱,還是從第一次服務器調用(包括類別ID)將它嵌入到JSON中?我沒有看到和REST/Ajax調用。注意:您的服務器調用是異步的,因此您無法調用服務器獲取類別名稱,直到完成類別ID服務器調用。這意味着你需要鏈接你的承諾。 – MoMo

+0

對'svampeApi.getPostData($ scope.id)'的第一個調用包含類別ID,但不包含名稱。這就是爲什麼我想在第二次調用中傳遞ID爲'svampeApi.getCategoryData($ scope.categoryId)'。 getCategoryData有一個名爲name的字段,其中包含名稱。我想從第一個呼叫中提取ID用於第二個呼叫。我希望這是有道理的。 – krillebimbim

+0

是第二次調用服務器的類別名稱嗎?同樣,如果是這樣,你*有*在第一次調用的'succ'函數內調用它。否則,它會在第一次調用從服務器獲取ID返回之前被過早調用。如果第二次調用獲取cat name是* not *到服務器並且是同步的,那麼爲什麼您需要'.then()'這意味着請求會有一個異步承諾返回? – MoMo

回答

1

請澄清:您是從服務器獲取類別名稱,還是從第一次服務器調用(包括類別ID)嵌入到JSON中?我沒有看到任何REST/Ajax調用。注意:您的服務器調用是異步的,因此您無法調用服務器獲取類別名稱,直到完成類別ID服務器調用。這意味着你需要鏈接你的承諾。

+1

它的工作原理!使用以下語法引用Id:$ scope.categoryId = succ.categories [0]; – krillebimbim