html中使用Vue+element UI动态创建表单数据不显示问题

直接上代码HTML代码如下

<!DOCTYPE html>
<html lang="en">

<head>
    <Meta charset="UTF-8">
    <Meta http-equiv="X-UA-Compatible" content="IE=edge">
    <Meta name="viewport" content="width=device-width,initial-scale=1.0">
    <script src="./js/commen.js"></script>
    <!-- 引入样式 -->
    <link  href="css/index.css">
    <link  href="css/elementui.css">
    <title>Document</title>
</head>

<body>
<div id="app" class="Box">

    <div class="info-Box">
        <el-form>
            <div class="b2">
                <!-- header-->
                <div class="container">
                    <div class="right">
                        <input type="button" value="get请求" @click="getMessage">
                        <input type="button" value="post请求" @click="postMessage">
                        <el-row class="b3">
                            <el-col :span="3" class="info info2"><span>项目名称</span></el-col>
                            <el-col :span="21" class="info info3" id="clear-border">
                                <el-input v-model="inputValue" disabled></el-input>
                            </el-col>
                        </el-row>
                    </div>
                </div>
                <!-- body-->
                <div class="container">
                    <div class="right">
                        <el-row class="b3">
                            <el-col :span="2" class="info info2 bdt"><span>检验内容</span></el-col>
                            <el-col :span="15" class="info info2 bdt"><span>检验项目</span></el-col>
                            <el-col :span="2" class="info info2 bdt"><span>检查结果</span></el-col>
                            <el-col :span="5" class="info info2 bdt"><span>备注</span></el-col>
                        </el-row>

                        <!--  具体数据  -->
                        <el-row class="b3" v-for="(item,index) in form.testDate" :key="index">
                            <!--    检验内容-->
                            <el-col :span="2" class="info info2">
                                <el-row class="b3">
                                    <el-col><span>{{item.mainContent}}</span></el-col>
                                </el-row>
                                <el-row class="b3">
                                    <el-col><span>{{item.secondContent}}</span></el-col>
                                </el-row>
                            </el-col>

                            <!--    检验项目-->
                            <el-col :span="15" class="info info2">
                                <span>{{item.testProject}}</span>
                            </el-col>
                            <!--     结果-->
                            <el-col :span="2" class="info info2">
                                <span>{{item.result}}</span>
                            </el-col>
                            <!--     备注-->
                            <el-col :span="5" class="info info2">
                                <span>{{item.note}}</span>
                            </el-col>
                        </el-row>
                    </div>
                </div>

            </div>
        </el-form>
    </div>

</div>
</body>
</html>

<!-- 引入组件库 -->
<script src="./js/vue.js"></script>
<script src="./js/elementui.js"></script>
<script src="./js/vue-resource.min.js"></script>
<script>
    new Vue({
        el: '#app',data: function () {
            return {
                form: {
                    testDate: []             //每条记录
                },inputValue: '',}
        },created() {
            this.postMessage()
            // window.callJsFunction = this.callJsFunction
        },methods: {
            getMessage() {
                this.$http.get('http://localhost:3003/report').then(function (result) {
                    console.log(result)
                })
            },postMessage() {
                this.$http.post('http://localhost:3003/report',{}).then(function (result) {
                    this.inputValue = result.body.ReportTitle
                    const data = result.body.data
                    this.form.testDate = data
                    this.form.testDate.forEach((a) => {
                        console.log(a.note + '嘿嘿嘿111')
                    })
                })
            }
        }
    });


</script>
<style>
    .zh {
        border: 0px;
        outline: none;
        cursor: pointer
    }
</style>

我这里后台数据是模拟的,返回的数据格式:

 理想的是页面创建时就向后台获取数据,然后将数据渲染在页面上,可是失败了,但是控制台也没有报错,只有单独绑定数据的ReportTitle渲染成功。

 

 

 最后问了大佬才发现,因为我用的是Vue2,必须要用this

Vue3才可以不用this

代码改为:

<el-row class="b3" v-for="(item,index) in this.form.testDate" :key="index">

最后就成功显示啦,就是格式不太对,但是可以显示成功了

相关文章

可以通过min-width属性来设置el-table-column的最小宽度。以...
yarn dev,当文件变动后,会自动重启。 yanr start不会自动重...
ref 用于创建一个对值的响应式引用。这个值可以是原始值(如...
通过修改 getWK005 函数来实现这一点。这里的 query 参数就是...
&lt;el-form-item label=&quot;入库类型&quot; ...
API 变动 样式类名变化: 一些组件的样式类名有所变动,可能需...