关键点在这里JSON.stringify(mock,null,4).toString()有格式化的作用,v-model以后取到的是字符串,所有都得转成数组结构。
<div id="app">
<div class="container">
<div class="fl" style="width:50%">
<textarea class="jsonBox" id="jsonBox" v-model="model"></textarea>
</div>
<div class="formCreate fr" id="formCreate" style="width:50%"></div>
<button @click="markHtml">生成html</button>
</div>
</div>
<script>
let mock = [
{
type:"input",
title:"商品名称",
field:"goods_name",
value:"商品名称",
props: {
"type": "text",
"clearable":false,
"disabled": false,
"readonly": false,
"rows": 4,
"autosize": false,
"number": false,
"autofocus": false,
"autocomplete": "off",
"placeholder": "请输入商品名称",
"size": "default",
"spellcheck": false,
"required":false,
}
}
];
vm = new Vue({
el:'#app',
data:{
formData:{},
model:''
},
computed:{
mocks(){
return JSON.stringify(mock,null,4).toString()
}
},
methods:{
markHtml(){
var model = JSON.parse(this.model);
window.formData = {};
let root = document.getElementById('formCreate');
$f = this.$formCreate(model,{
el:root,
});
}
}
});
</script>
var arr = [1,2,3,4,5];
JSON.stringify(arr).toString();
var jsonStr = JSON.stringify(arr).toString();
var v = JSON.parse(jsonStr);
console.log(v[1], v[2]);