将资产和条目循环在一起
Looping assets and entries together
我已经设法从特定的 ContentType 中循环出所有内容并且一切正常,除了条目后面没有其特定资产。
在这种特定情况下,它呈现为:
条目 1
条目 2
条目 3
资产 1
资产 2
资产 3
我希望它呈现为:条目 1 资产 1、条目 2 资产 2 等...
将资产数组循环放在字段循环中没有帮助:)
Javascript
client.getEntries({
include: 1,
'content_type': 'posts'
})
.then((response) => {
var template = $('#myEntries').html();
var html = Mustache.to_html(template, response.toPlainObject());
$('.result').html(html);
})
.catch((error) => {
console.log('Error occured')
console.log(error)
})
HTML
<script id="myEntries" type="text/template">
{{#items}}
<h1>{{fields.header}}</h1>
<p>{{fields.description}}</p>
{{/items}}
{{#includes.Asset}}
<p>File: <img src="https:{{fields.file.url}}?fit=thumb&f=top_left&h=200&w=200" width="100"/></p>
{{/includes.Asset}}
</script>
<div class="result"></div>
JSON
https://jsfiddle.net/pcgn73zf/
希望得到你的帮助!
你在用 response.toPlainObject()
奉承 JSON。尝试按所需顺序阅读所需的属性。
示例:
var input = {
entries: [
{
text: "Entry 1"
},
{
text: "Entry 2"
}
],
assets: [
{
text: "Asset 1"
},
{
text: "Asset 2"
}
]
};
var i = 0;
while (i < Math.max(input.entries.length, input.assets.length)) {
if (i < input.entries.length) {
document.write(input.entries[i].text + ", ");
}
if (i < input.assets.length) {
document.write(input.assets[i].text + ", ");
}
i++;
}
您好,也许您在文档中遗漏了它,但是 contentful js SDK 已经完成 link 解析,例如,如果您有一个包含图像字段的 contentType post,当您得到一个entry 您可以直接访问资产的字段。因此,要从 linked 资产中获取 url
,您只需请求 myEntry.fields.image.fields.file.url
。无需请求它的形式包括。
您代码中的资产部分应该是(假设资产字段称为图像)
<p>File: <img src="https:{{fields.image.fields.file.url}}?fit=thumb&f=top_left&h=200&w=200" width="100"/></p>
请注意,link 解析仅在请求收集端点时有效 client.getEntries()
有关更多信息,请查看此自述文件 section
我已经设法从特定的 ContentType 中循环出所有内容并且一切正常,除了条目后面没有其特定资产。
在这种特定情况下,它呈现为: 条目 1 条目 2 条目 3 资产 1 资产 2 资产 3
我希望它呈现为:条目 1 资产 1、条目 2 资产 2 等...
将资产数组循环放在字段循环中没有帮助:)
Javascript
client.getEntries({
include: 1,
'content_type': 'posts'
})
.then((response) => {
var template = $('#myEntries').html();
var html = Mustache.to_html(template, response.toPlainObject());
$('.result').html(html);
})
.catch((error) => {
console.log('Error occured')
console.log(error)
})
HTML
<script id="myEntries" type="text/template">
{{#items}}
<h1>{{fields.header}}</h1>
<p>{{fields.description}}</p>
{{/items}}
{{#includes.Asset}}
<p>File: <img src="https:{{fields.file.url}}?fit=thumb&f=top_left&h=200&w=200" width="100"/></p>
{{/includes.Asset}}
</script>
<div class="result"></div>
JSON https://jsfiddle.net/pcgn73zf/
希望得到你的帮助!
你在用 response.toPlainObject()
奉承 JSON。尝试按所需顺序阅读所需的属性。
示例:
var input = {
entries: [
{
text: "Entry 1"
},
{
text: "Entry 2"
}
],
assets: [
{
text: "Asset 1"
},
{
text: "Asset 2"
}
]
};
var i = 0;
while (i < Math.max(input.entries.length, input.assets.length)) {
if (i < input.entries.length) {
document.write(input.entries[i].text + ", ");
}
if (i < input.assets.length) {
document.write(input.assets[i].text + ", ");
}
i++;
}
您好,也许您在文档中遗漏了它,但是 contentful js SDK 已经完成 link 解析,例如,如果您有一个包含图像字段的 contentType post,当您得到一个entry 您可以直接访问资产的字段。因此,要从 linked 资产中获取 url
,您只需请求 myEntry.fields.image.fields.file.url
。无需请求它的形式包括。
您代码中的资产部分应该是(假设资产字段称为图像)
<p>File: <img src="https:{{fields.image.fields.file.url}}?fit=thumb&f=top_left&h=200&w=200" width="100"/></p>
请注意,link 解析仅在请求收集端点时有效 client.getEntries()
有关更多信息,请查看此自述文件 section