我正在尝试使用vue.js创建某种类型的树,并陷入元素道具的问题。请帮我。
我已经尝试:content="{{tempCont}}"过了content="{{tempCont}}",但是都没有成功。
这是我使用tree元素的地方:
<div id="tree">
<treeItem :title="Parent" :content="{{tempCont}}"></treeItem>
</div>
Run Code Online (Sandbox Code Playgroud)
这是整个树元素:
<template>
<div>
<p v-on:click="openTree">{{title}}</p>
<div id="childs" v-if="childVisibility">
<treeItem v-for="item in content" :key="item" title=item>
</div>
</div>
</template>
<script>
export default {
data: {
childVisibility: false
},
methods: {
openTree: function(){
childVisibility = !childVisibility;
}
},
props: {
title: String,
content: Array,
}
}
</script>
<style scoped>
</style>
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Sar*_*and 16
好的,首先,当您 v-bind 之类的东西v-bind:titleor 时:title,您绑定的内容表示为 javascript 表达式。
因此,如果您希望您的title属性是 string Parent,则需要将其编写为原生 html 属性title="Parent"(注意缺少:),或者作为 vue 绑定属性v-bind:title="'Parent'"或:title="'Parent'"(注意''在 javascript 中使用来表示字符串原始类型。
现在,{{ variable }}语法在 vuejs 模板中使用,但您不需要在 v-bind 属性中使用它,因为它们已经被解释为 javascript。
所以你不应该这样写:
<div id="tree">
<treeItem :title="Parent" :content="{{tempCont}}"></treeItem>
</div>
Run Code Online (Sandbox Code Playgroud)
但这反而是:
<div id="tree">
<treeItem title="Parent" :content="tempCont"></treeItem>
</div>
Run Code Online (Sandbox Code Playgroud)
因为tempCont已经是一个有效的 javascript 表达式。
Saj*_*han 15
像这样使用: :content="tempCont"
<div id="tree">
<treeItem :title="Parent" :content="tempCont"></treeItem>
</div>
Run Code Online (Sandbox Code Playgroud)