HTML将道具传递给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 +‘个人’文本“。但是“个人”文本没有被打印出来。
发布于 2019-08-27 08:44:14
因为personal
不是父级数据中的变量,尽管它是传递给<radio-input/>
组件的静态值。
要传递静态道具,不需要
binding colons :someProp
。当您使用它的基本v-bind:someProp
时,Vue组件将在其data
中查找someProp
,或者尝试将其视为像Number
、Boolean
或Array
这样的javascript表达式,而不是作为要传递的静态文本。
将组件的HTML代码更改为:
<radio-input radio-content="personal"></radio-input>
--基于代码片段和注释的更新-:好的!这里有几件事
props
是从父级传递到子级的东西(考虑它是一种通信方式,父->子对象是Vue组件或实例,而不是纯HTML)。<radio-input/>
的Vue实例,它是某种父级的,所以在它上定义prop
是没有意义的,因为没有父Vue可以传递它。Read Some Moreprop
和绑定值,并直接从您定义的数据属性value
中使用personal
文本,如果需要的话。 <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>
https://stackoverflow.com/questions/57661915
复制相似问题