更改静态模板中的值

时间:2018-10-04 13:14:49

标签: html vue.js

这是我想做的基本设置:

HTML边

test.html

char

Vue Side

app.js:

<div id="app">
    <my-comp temp="1" cat="{ name:'Geoff', age:3 }"></my-comp>
</div>

myComp.vue

import myComp from './components/myComp.vue'

app = new Vue({
    el: "#app",
    components: {
        myComp
    }
});

我的问题是,当我在浏览器中打开html文件时,我得到了:

<template>
    <div v-html='template'>
    </div>
</template>

<script>
    export default {
        props: [
            'temp',
            'cat'
        ],
        data () {
            temp1: `<input name="name" value="cat.name">
                    <input name="age" value="cat.age">`,
            // other template
            // ...

        },
        computed: {
            template() {
                return this.temp == 1 ? this.temp1 : this.temp2;
            }
        }
    }
</script>

出现在输入中。从技术上讲,我的表单不响应现有数据。我该怎么解决?

2 个答案:

答案 0 :(得分:1)

您必须在test.html中对此进行更改:

<my-comp :temp="1" :cat="{ name:'Geoff', age:3 }"></my-comp>

必须添加双点,否则它将被解释为字符串而不是对象。

有了value,您将步入正确的轨道。唯一需要更改的是此操作,因为您要将变量插入“字符串”

  data() {
    return {
      temp1: `<input name="name" value="${this.cat.name}">
              <input name="age" value="${this.cat.age}">`
    }
  }

答案 1 :(得分:-1)

不要忘记也添加“输入类型”。