当前位置: 首页 > 软件库 > 程序开发 > >

ember-data-contentful

Ember Data adapter for contentful.com
授权协议 MIT License
开发语言 JavaScript
所属分类 程序开发
软件类型 开源软件
地区 不详
投 递 者 邓嘉致
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

ember-data-contentful

This is an Ember Data adapter/serializer that uses the READ ONLY Content Delivery API from contentful

Setup in your app

ember install ember-data-contentful

After installing the addon, configure your Contentful Space ID and Access Token inside ENV in config/environment.js:

contentful: {
  space: 'YOUR-CONTENTFUL-SPACE',
  accessToken: 'YOUR-CONTENTFUL-ACCESS-TOKEN',
  previewAccessToken: 'YOUR-CONTENTFUL-PREVIEW-ACCESS-TOKEN',
  usePreviewApi: false,
  environment: 'OPTIONAL CONTENTFUL ENVIRONMENT NAME'
}

You can enable the Preview API for use in development in config/environment.js:

if (environment === 'development') {
    // ...
    
    ENV.contentful.usePreviewApi = true;
  }

Contentful models

Included are a few models to help with some of the default fields. Here is an example:

// models/post.js
import Contentful from 'ember-data-contentful/models/contentful';
import attr from 'ember-data/attr';
import { belongsTo, hasMany } from 'ember-data/relationships';

export default Contentful.extend({
  author: hasMany('author'),
  body: attr('string'),
  date: attr('date'),
  featuredImage: belongsTo('contentful-asset'),
  slug: attr('string'),
  title: attr('string')
});

will give you the default fields of contentType, createdAt, and updatedAt.

For multi-word model names, you can name your Contentful model IDs with dashes (ie. timeline-post) make sure the contentType field is inferred correctly.

For any relationship property that is a Contentful Asset (image or other media file), use the contentful-asset model. i.e. image: belongsTo('contentful-asset') in order to get the asset correctly.

Adapters and serializers

You will also need to define an adapter and serializer for your model, so that Ember Data knows to fetch data from Contentful instead of your default backend.

// app/adapters/post.js
import ContentfulAdapter from 'ember-data-contentful/adapters/contentful';

export default ContentfulAdapter.extend({});
// app/serializers/post.js
import ContentfulSerializer from 'ember-data-contentful/serializers/contentful';

export default ContentfulSerializer.extend({});

If you are only using Contentful models, you can set these to app/adapters/application.js and app/serializers/application.js to apply for all models.

Usage

Once you have configured your tokens and created your models, you can use the normal Ember Data requests of findRecord, findAll, queryRecord, and query. For example:

model() {
  return this.store.findAll('project');
}

or

model(params) {
  return this.store.findRecord('project', params.project_id);
}

If you want to use pretty urls and the slug field in contentful, you can make your query like so:

model(params) {
  return this.store.queryRecord('page', {
    'fields.slug': params.page_slug
  });
},
serialize(model) {
  return { page_slug: get(model, 'slug') };
}

and ensure that you declare your route in router.js like this:

this.route('page', { path: ':page_slug' });

Previewing Content

Contentful provides a Preview API that allows you to preview unpublished content. In order to enable this, ensure you have your previewAccessToken configured in config/environment.js and enable the usePreviewApi property.

For more information on the contentful Content Delivery API and the available queries, look here: https://www.contentful.com/developers/docs/references/content-delivery-api/

 相关资料
  • ember-data-tasks An alternative Ember Data store that returns Ember Concurrency tasks instead of promises. Install ember install ember-data-tasks This addon comes in three phases: Phase 1: Store Overr

  • Ember Data Copyable Intelligently copy an Ember Data model and all of its relationships Features Shallow & deep copy an Ember Data model Shallow & deep copy model relationships Handles cyclical relati

  • Ember Data Github Ember Data abstraction for the GitHub REST API v3. Installation ember install ember-data-github Usage You need to choose how you wish to authenticate your GitHub requests using OAuth

  • 目前,我们的应用程序使用硬编码的数据作为租赁列表中定义的rentals路由处理程序。随着应用程序的发展,我们希望在服务器上保留我们的租用数据,并且更容易地对数据进行高级操作,如查询。 Ember提供了一个名为Ember Data的数据管理的库来帮助处理持久的应用程序数据。 Ember Data要求你通过扩展DS.Model来定义要提供给应用程序的数据的结构。 可以使用Ember CLI生成Embe

  • ember-data-url-templates ember-data-url-templates is an addon to allow building urls with url templates instead ofdefining buildURL as described in RFC #4. ember-data-url-templates is under early deve

  • Ember检查器是一个浏览器插件,用于调试Ember应用程序。 灰烬检查员包括以下主题 - S.No. 灰烬检查员方式和描述 1 安装Inspector 您可以安装Ember检查器来调试您的应用程序。 2 Object Inspector Ember检查器允许与Ember对象进行交互。 3 The View Tree 视图树提供应用程序的当前状态。 4 检查路由,数据选项卡和库信息 您可以看到检查