嗨,我正在尝试使用 Contentful 交付 API 将 Contentful 与 Angular2 一起使用
例如,我可以获得特定的数据
内容丰富的.service.ts
HomePage() {
return this.http
.get('https://cdn.contentful.com/spaces/PRIVATE/entries?access_token=PRIVATE&sys.id=PRIVATE')
.map((res:Response) => res.json()); /* map response to var */
}
主页.component.ts
export class Home {
pagename: string;
ngOnInit() {
this.http.HomePage()
.subscribe(
data => {
this.pagename = data.items[0].fields.pageName;
}
);
}
}
但是,如果我有多个项目,我需要将每个 data.item 声明为一个字符串,这会变得很冗长。然后,如果我决定向内容类型添加一个新字段,这可能会添加到数组的中间,从而破坏我拥有的当前绑定,并且需要再次更新它们。
我看到了另一个仓库,他们在模板中使用了我正在寻找的架构,我知道这是做我需要做的事情的正确方法。
例如 homepage.template.html
<ul contentful-entries="'content_type=dog&limit=10'">
<li ng-repeat="dog in $contentfulEntries.items">
{{ dog.fields.name }}
</li>
</ul>
这意味着不存在数组中断的风险,并且 tbh 构造了代码以进行缩放和添加。但是我见过这个的回购
是用 AngularJS V1 编写的,我不确定如何在 Angular2 中使用它。我还在学习,我觉得如果有人能指出我正确的方向和例子,我可以继续征服这个项目!
理想情况下是示例组件和服务。我是否还假设需要应用 Contentful SDK?
还有链接关系的问题(如何内容推荐构建大型内容条目)。
Contentful 将列出 Items 中的字段,这些字段与具有该 ID 和内容的字段中的内容具有链接关系。并且该项目的任何资产都将放入包含/资产中
例如
{
"sys": {
"type": "Array"
},
"total": 1,
"skip": 0,
"limit": 100,
"items": [
{
"sys": {
"space": {
"sys": {
"type": "Link",
"linkType": "Space",
"id": "1ST_UNIQUE_ID"
}
},
"id": "2ND_UNIQUE_ID",
"type": "Entry",
"createdAt": "2016-07-14T16:30:12.787Z",
"updatedAt": "2016-07-14T16:30:12.787Z",
"revision": 1,
"contentType": {
"sys": {
"type": "Link",
"linkType": "ContentType",
"id": "pressRelease"
}
},
"locale": "en-US"
},
"fields": {
"title": "Title of Review",
"excerpt": "Excerpt of review",
"content": "Content of Review",
"dateCreated": "2016-07-01",
"datePublished": "2016-07-14",
"featureImage": {
"sys": {
"type": "Link",
"linkType": "Asset",
"id": "3RD_UNIQUE_ID"
}
}
}
}
],
"includes": {
"Asset": [
{
"sys": {
"space": {
"sys": {
"type": "Link",
"linkType": "Space",
"id": "1ST_UNIQUE_ID"
}
},
"id": "4TH_UNIQUE_ID",
"type": "Asset",
"createdAt": "2016-07-14T16:30:05.078Z",
"updatedAt": "2016-07-14T16:30:05.078Z",
"revision": 1,
"locale": "en-US"
},
"fields": {
"title": "Image Title",
"description": "Image Description",
"file": {
"url": "//url-of-image.jpg",
"details": {
"size": 43098,
"image": {
"width": 1278,
"height": 928
}
},
"fileName": "image.jpg",
"contentType": "image/jpeg"
}
}
}
]
}
}
我假设通过查找您需要的项目的 ID,然后您获得资产 ID 的任何关系,然后查看资产?但这又是通过 SDK 完成的吗?还是我需要编写这段代码?
我迷路了...
任何帮助表示赞赏,谢谢。