我有一个VueJS组件,如果我通过静态文本可以使用,但是如果我尝试绑定变量值,则会得到“此实例未定义属性或方法”。但是与其说是未定义的属性,不如说是“未定义”属性的变量值。
HTML:
<section class="reflectionPage" id="reflectionPage">
<div class="header">
<h1>Independent Learner & International Citizen</h1>
<h3>Character, Collaboration, Learning Goals</h3>
</div>
<reflection-box type="student" imgurl="https://placeimg.com/640/480/tech/sepia"></reflection-box>
<reflection-box type="teacher" v-bind:textbox="teacherComment"></reflection-box>
</section>
VueJS:
// Define a new component called reflection-box
Vue.component('reflection-box', {
props: ['type', 'imgurl', 'textbox'],
template: '<div :class="`${type}Reflection`" class="reflection">\
<h4 v-if="imgurl">{{ type.charAt(0).toUpperCase() + type.slice(1) }} Reflection</h4>\
<h4 v-else>{{ type.charAt(0).toUpperCase() + type.slice(1) }} Comment</h4>\
<div class="reflectionBox" :class="`${type}ReflectionBox`"><img v-if="imgurl" :src="imgurl" alt="Reflection Box Image"><p v-if="textbox" v-html="textbox"></p></div>\
</div>'
})
new Vue({
el: '#reflectionPage'
})
如果有的话,我希望会有一个错误,说“文本框”未定义。我不明白为什么老师的评论是“未定义的”?
答案 0 :(得分:1)
它表示变量teacherComment
不存在。如果我们查看您的Vue实例,您会发现它只有el
属性,而从未定义过teacherComment
。要对其进行修复,您需要将其添加为数据属性。
new Vue({
el: '#reflectionPage',
data () {
return {
teacherComment: 'The value you wish to give it'
};
}
})