我正在用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 []
我希望你能幫助我。
請澄清:您是從服務器獲取類別名稱,還是從第一次服務器調用(包括類別ID)將它嵌入到JSON中?我沒有看到和REST/Ajax調用。注意:您的服務器調用是異步的,因此您無法調用服務器獲取類別名稱,直到完成類別ID服務器調用。這意味着你需要鏈接你的承諾。 – MoMo
對'svampeApi.getPostData($ scope.id)'的第一個調用包含類別ID,但不包含名稱。這就是爲什麼我想在第二次調用中傳遞ID爲'svampeApi.getCategoryData($ scope.categoryId)'。 getCategoryData有一個名爲name的字段,其中包含名稱。我想從第一個呼叫中提取ID用於第二個呼叫。我希望這是有道理的。 – krillebimbim
是第二次調用服務器的類別名稱嗎?同樣,如果是這樣,你*有*在第一次調用的'succ'函數內調用它。否則,它會在第一次調用從服務器獲取ID返回之前被過早調用。如果第二次調用獲取cat name是* not *到服務器並且是同步的,那麼爲什麼您需要'.then()'這意味着請求會有一個異步承諾返回? – MoMo