json - 在 VueJs 中显示图像和描述
问题描述
我正在使用 VueJs 和 wagtail 创建一个博客站点。我在 Json 中获取页面和图像数据。我需要将数据显示为
描述:Lorem Ipsum 只是印刷和排版行业的虚拟文本。自 1500 年代以来,Lorem Ipsum 一直是行业的标准虚拟文本,当时一位不知名的印刷商采用了一种类型的厨房并将其加扰以制作一本类型样本书。它不仅经历了五个世纪,而且经历了电子排版的飞跃,基本保持不变。它在 1960 年代随着包含 Lorem Ipsum 段落的 Letraset 表的发布而流行起来,最近还随着 Aldus PageMaker 等桌面出版软件(包括 Lorem Ipsum 的版本)而普及。
图像:某事.jpg
描述:Lorem Ipsum 只是印刷和排版行业的虚拟文本。自 1500 年代以来,Lorem Ipsum 一直是行业的标准虚拟文本,当时一位不知名的印刷商采用了一种类型的厨房并将其加扰以制作一本类型样本书。它不仅经历了五个世纪,而且经历了电子排版的飞跃,基本保持不变。它在 1960 年代随着包含 Lorem Ipsum 段落的 Letraset 表的发布而流行起来,最近还随着 Aldus PageMaker 等桌面出版软件(包括 Lorem Ipsum 的版本)而普及。
图像:某事.jpg
我该怎么做?这是我的代码。在我的代码中我无法正确显示
<template>
<div class="app">
<div>
<b-card-group deck v-for="item in results" :key="item.id">
<b-card
border-variant="primary"
>
<b-card-text>
<div v-for="block in item.body" :key="block.id">
<div v-if="block.type == 'heading'">
<h2>{{block.value}}</h2>
</div>
<div v-for="image in images" :key="image.id">
<div v-if="block.type == 'image'">
<img :src="'http://127.0.0.1:8000' + image.meta.download_url" alt="">
</div>
<!-- <img :src="'http://127.0.0.1:8000/' + block.value"> -->
</div>
<div v-if="block.type == 'paragraph'">
<h2 v-html="block.value">{{block.value}}</h2>
</div>
</div>
</b-card-text>
</b-card>
</b-card-group>
</div>
</div>
</template>
<script>
// @ is an alias to /src
import axios from 'axios'
export default {
name: 'Home',
data () {
return {
results: null,
image_path: null,
tags: null,
title: null,
images: null
}
},
mounted () {
axios.get('http://127.0.0.1:8000/api/v2/pages/?type=news.NewsPage&fields=intro,body,image_thumbnail')
.then((response) => {
this.results = response.data.items
})
.catch((error) => (
console.log(error)
))
},
created () {
axios.get('http://127.0.0.1:8000/api/v2/images/')
.then((response) => {
this.images = response.data.items
})
.catch((error) => (
console.log(error)
))
}
}
</script>
<style scoped>
.app{
width: 80%;
margin: 0 auto;
}
.card{
border: 2px solid black;
}
p{
font-size: 16px;
font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
}
h2{
font-weight: 300;
font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
font-size: 14px;
}
</style>
解决方案
我认为这段代码有两个问题:
1)您正在加载创建和安装的ajax数据。图像不链接到数据,
2)您还需要整理缩进,因为我认为您的 div 没有按照您的意图对齐。请注意,在图像中,您正在循环从 ajax 加载的 this.images 属性。但是,图像不是来自您正在迭代的外部对象吗?或者您是否打算在每次迭代博客项目时重复相同的图像集?
推荐阅读
- sql - 如何防止一元一对多 SQL 关系表中的逻辑重复
- r - R Markdown pdf_document2 PDF 粗体希腊字母
- mysql - 如何使特定列 0
- python - 如何从 PyQt5 中的多个文本框中获取信息,并将它们存储到各自的类中
- javascript - 错误:TypeError:无法读取 React-Redux 中未定义的属性“地图”
- java - hibernate的orderBy和Collections.sort()的区别
- python - 如何清除 tkinter 组合框?
- java - Java中的字符串递归方法
- java - 让我的谷歌助手在特定的词上调用我的 REST API
- c++ - c++ 如何使用 Variadic 创建闭包?