This is an Ember Data adapter/serializer that uses the READ ONLY Content Delivery API from contentful
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;
}
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.
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.
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' });
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 检查路由,数据选项卡和库信息 您可以看到检查