我下面有一些代码,我想要show" header"在模板中,当标题不为空时显示或隐藏。
<div id="hung">
<cmx-test v-bind:header="${properties.header}"></cmx-test>
</div>
<script>
Vue.component('cmx-test', {
props: ['header'],
template: '<h1 class=\"fillColor\" data={{this.header}}></h1>'
});
// create a new Vue instance and mount it to our div element above with the id of app
var vm = new Vue({
el: '#hung'
});
</script>
答案 0 :(得分:0)
你的问题并不完全清楚。您有接收prop header
的组件,但未在主Vue实例上定义header
。您需要将该主要数据对象/ Vue实例中的prop传递到组件中以在那里使用它。
<div id="hung">
<cmx-test v-if="header" :header="header"></cmx-test>
</div>
<script>
Vue.component('cmx-test', {
props: ['header'],
template: '<h1 class=\"fillColor\" :data="header">{{header}}</h1>'
});
// create a new Vue instance and mount it to our div element above with the id of app
var vm = new Vue({
el: '#hung'
data:{
header: null,
}
});
</script>
还使用相同的数据对象header
来控制是否使用v-if
呈现组件。因此,如果header
为null或false,则不会呈现。当它变为真或包含一个值时,它将被渲染,header
的值将通过绑定它传递给组件(例如:header =“header”)
答案 1 :(得分:0)
您的代码中存在一些语法错误,您可以使用v-text
属性而不是data={{this.header}}
将文本插入到代码中。
如果您想根据数据值隐藏某些标记或组件,可以使用v-if
。
最后一件事是,如果你想传递值介绍组件,你可以通过这种方式实现v-bind:header="value"
,而value
是变量,它可以保存你想传递的值。
<div id="hung">
<cmx-test v-if="header" v-bind:header="value"></cmx-test>
<button @click="header = true">Display</button>
</div>
<script>
Vue.component('cmx-test', {
props: ['header'],
template: '<h1 class=\"fillColor\" v-text="header"></h1>'
});
// create a new Vue instance and mount it to our div element above with the id of app
var vm = new Vue({
el: '#hung',
data: {
header: null,
value: "Hello World!"
}
});
</script>