HTML将props传递给Vue标记,不存在任何值。即使我尝试打印出已挂载,已创建,未定义的内容,也已打印。
Vue在Django服务器上运行。因此,我更改了定界符并打印了应用程序,但没有打印出任何内容。
HTML代码
<radio-input :radio-content="personal"></radio-input>
Vue代码
radioInput = new Vue({
props: ["radioContent"],
template:
'<label>\n' +
' <input type="radio" :name="name" :value="value" :v-model="v_model" :required="required">\n' +
' <span>${ radioContent }</span>\n' +
'</label>\n',
delimiters: ['${', '}'],
el: 'radio-input',
data: {
name: 'A1_P1_S1_B0',
value: 'personal',
v_model: 'A1P1S1Q',
required: true,
}
});
预期结果是“ radioButton +'个人'文本”。但是不会打印“个人”文本
答案 0 :(得分:0)
由于personal
在父级数据中不是变量,尽管它是传递给<radio-input/>
组件的静态值。
无需传递
binding colons :someProp
即可通过静态道具。当您使用它基本上是v-bind:someProp
时,Vue组件将在其someProp
中寻找data
或尝试将其视为JavaScript表达式,例如Number
或Boolean
或Array
,而不是要传递的静态文本。
将组件的HTML代码更改为:
<radio-input radio-content="personal"></radio-input>
-根据代码段和注释进行更新-: 好的!这里有几件事
props
是从父级传递到子级的东西(考虑到它是一种将父级->子级(不是Vue组件或纯HTML实例)进行通信的方式)。 <radio-input/>
是父类,因此在其上定义prop
是
毫无意义,因为没有父Vue可以通过。 Read
Some More prop
和绑定值
并直接从数据属性中使用personal
文本
如果您要的是value
,就是您想要的。
<html>
<head>
</head>
<body>
<radio-input></radio-input>
<script src="https://unpkg.com/vue@2.6.10/dist/vue.js"></script>
<script>
radioInput = new Vue({
template: '<label>\n' +
' <input type="radio" :name="name" :value="value" :v-model="v_model" :required="required">\n' +
' <span>${ value }</span>\n' +
'</label>\n',
delimiters: ['${', '}'],
el: 'radio-input',
data: {
name: 'A1_P1_S1_B0',
value: 'personal',
v_model: 'A1P1S1Q',
required: true,
}
});
</script>
</body>
</html>