我有一个vuejs组件edit-form,里面有一个命名的插槽body和一个名为model的数据。
<template>
<div>
<pre>{{ model }}</pre>
Name: <input v-model="model.name"><br>
<slot name="body" v-bind="model"></slot>
</div>
</template>
<script>
export default {
data: function() {
return {
model: {
name: "x",
title: "y"
}
}
}
}
</script>我在一个父组件中使用这个组件,如下所示:
<edit-form>
<template v-slot:body="model">
Title: <input v-model="model.title">
</template>
</edit-form>现在,当我在name输入字段中输入内容时,<pre>{{ model }}</pre>标记就会更新。修改title输入字段对<pre>没有影响。
请参阅https://codepen.io/bernhardh/pen/KKwEVZo
如何让title输入域正常工作?
发布于 2020-01-24 22:12:47
你应该在这段代码中做一些修改!例如
Html代码:
<html>
<head></head>
<body>
<div id="container">
<edit-form v-model="model">
<template slot="body">
Title: <input v-model="model.title">
</template>
</edit-form>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</body>
</html>Vuejs代码:
Vue.component('edit-form', {
template : `<div>
<pre>{{ value }}</pre>
Name: <input v-model="value.name"><br>
<slot name="body"></slot>
</div>`,
props:{
value: {
reqired: false,
type: Object
}
},
data: function() {
return {
};
}
});
new Vue({
el: '#container',
data: {
value: '',
model: {
name: "x",
title: "y"
}
},
});https://stackoverflow.com/questions/59897873
复制相似问题