2016-03-07 35 views
0

我是新來Contentful和角度(以離子的工作),並有一些困難,整理出如何正確地從Contentful條目的相關內容檢索字段數據(又名「通」 )。提取鏈接輸入字段中Contentful與角(離子)

就目前情況來看,我可以根據「協議」工廠列出我的項目,並且可以移動到單個條目狀態,其中我可以列出鏈接的內容 - 如你在這裏看到明顯的 - 僅僅是ID 。

我喜歡這種感覺可以在/工廠解決,但只是不太清楚如何進行。到目前爲止,我嘗試過的任何工作都沒有成功而且,如果出現這種情況我完全錯了,我很高興被告知。

非常感謝提前。

services.js

angular.module('app.services', ['ngResource']) 

.factory('Terms', function ($resource, $log) { 

    var apiGetEntries = 'https://cdn.contentful.com/spaces/SPACE_ID/entries?access_token=MY_ACCESS_TOKEN'; 

    var terms = $resource(apiGetEntries, null, { 

    query: { 
     method: 'GET', 
     isArray: true, 
     transformResponse: function(data, headers) { 
     var entriesRaw = angular.fromJson(data); 
     var entries = []; 
     angular.forEach(entriesRaw.items, function(entry) { 
      entries.push(entry); 
     }); 
     console.log(entries); 
     return entries; 
     } 
    } 

    }); 

    return terms; 

}) 

controllers.js

angular.module('app.controllers', []) 

.controller('getTerms', function($scope, Terms) { 

    $scope.terms = Terms.query(); 

}) 

.controller('getTermDetail', function($scope, $http, $stateParams) { 

    var apiBasePath = 'https://cdn.contentful.com/spaces/SPACE_ID/entries/'; 
    var accessToken = 'MY_ACCESS_TOKEN'; 
    var termId  = $stateParams.termId; 

    $http({ 
    url: apiBasePath + termId, 
    method: "GET", 
    params: { access_token: accessToken } 
    }).success(function(data, status, headers, config) { 
     $scope.term = data; 
     if(typeof $scope.term.fields.relatedTo != 'undefined') { 
     $scope.relatedTerms = $scope.term.fields.relatedTo 
     } 
    }).error(function(data, status, headers, config) { 
     console.log(data); 
    }) 

}); 

模板/學期,definition.html

<ion-view view-title="Definition"> 
    <ion-content class="padding"> 
    <h2>{{ term.fields.term }}</h2> 
    <p> 
     {{ term.fields.definition }} 
    </p> 
    <ion-list> 
     <ion-item class="" ng-repeat="relatedTerm in relatedTerms" type="item-text-wrap" href="#/tab/terms/{{ relatedTerm.sys.id }}"> 
     {{ relatedTerm.sys.id }} 
     </ion-item> 
    </ion-list> 
    </ion-content> 
</ion-view> 

回答

0

除非你有一個非常具體的用例,否則你不需要手工完成所有這些工作。您可以使用官方Contentful JS SDK或第三方Angular JS Contentful集成。他們兩個都自動處理鏈接分辨率。你可以看到有關鏈接的詳細信息在這裏https://www.contentful.com/developers/docs/concepts/links/這裏https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/links

希望幫助:)

+0

謝謝你的資源的建議。由於我是Angular的新手,我想我會試試它,但JS SDK的確讓事情變得更容易。 我仍然有困難,通過相關entires搞清楚如何循環訪問單個條目(通過「client.getEntry」)時,得到他們的領域。顯然,還有一些閱讀要做。 :) –