Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 使用Angular(Ionic)检索Contentful中的链接输入字段_Angularjs_Ionic Framework_Contentful - Fatal编程技术网

Angularjs 使用Angular(Ionic)检索Contentful中的链接输入字段

Angularjs 使用Angular(Ionic)检索Contentful中的链接输入字段,angularjs,ionic-framework,contentful,Angularjs,Ionic Framework,Contentful,我对内容和角度(在Ionic中工作)不太熟悉,在整理如何从内容条目的相关内容(也称为“链接”)中正确检索字段数据时遇到了一些困难 就目前情况而言,我可以根据“术语”工厂列出我的条目,并可以移动到一个单独的条目状态,在该状态下,我可以列出链接的内容,很明显,正如您在这里看到的,就是id 我觉得这可以在/a工厂解决,但不太确定如何继续。到目前为止,我试过的都没用。而且,如果我在这件事上完全错了,我很高兴被告知 非常感谢 services.js angular.module('app.services

我对内容和角度(在Ionic中工作)不太熟悉,在整理如何从内容条目的相关内容(也称为“链接”)中正确检索字段数据时遇到了一些困难

就目前情况而言,我可以根据“术语”工厂列出我的条目,并可以移动到一个单独的条目状态,在该状态下,我可以列出链接的内容,很明显,正如您在这里看到的,就是id

我觉得这可以在/a工厂解决,但不太确定如何继续。到目前为止,我试过的都没用。而且,如果我在这件事上完全错了,我很高兴被告知

非常感谢

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;

})
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);
    })

});
controllers.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;

})
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);
    })

});
模板/术语定义.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>

{{term.fields.term}

{{term.fields.definition}}

{{relatedTerm.sys.id}
除非您有非常具体的用例,否则不需要手动完成所有这些。您可以使用官方或第三方集成。它们都自动处理链接解析。您可以在此处和此处查看有关链接的更多信息


希望对您有所帮助:)

感谢您提供的资源建议。因为我是Angular的新手,所以我想我应该直接尝试一下,但是JSSDK确实让事情变得容易多了。在访问单个条目(通过“client.getEntry”)时,我仍然很难弄清楚如何循环相关的entires来获取它们的字段。显然,还有一些阅读任务要做。:)