Javascript 如何将属性发送到输入文本的值?(Vue.JS 2)

Javascript 如何将属性发送到输入文本的值?(Vue.JS 2),javascript,vue.js,vuejs2,vue-component,Javascript,Vue.js,Vuejs2,Vue Component,我的组件如下所示: <template> <div class="modal" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <form id="form-message">

我的组件如下所示:

<template>
    <div class="modal" tabindex="-1" role="dialog">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <form id="form-message">
                    ...

                    <input type="text" class="form-control" id="subject" placeholder="Subject" v-model="product_name" required>
                    ...   
                </form>    
            </div>
        </div>
    </div>         
</template>

<script>
    export default {
        name: 'MessageModal',
        props: ['productName'],
        data() {
            return {
                product_name: this.productName,
            }
        }
    }
</script>
<input type="text" class="form-control" id="subject" placeholder="Subject" v-model="product_name" required>
<form id="form-message">
    ...
</form>    

...
...   
导出默认值{
名称:“MessageModal”,
道具:['productName'],
数据(){
返回{
产品名称:this.productName,
}
}
}
此组件是一个模态。单击按钮时显示此模式。当模态组件显示时,我希望将product_name属性的值发送到输入文本的值

我尝试使用上面的代码,但输入文本不显示product_name属性的值

如果我将输入文本按如下方式输出:

<template>
    <div class="modal" tabindex="-1" role="dialog">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <form id="form-message">
                    ...

                    <input type="text" class="form-control" id="subject" placeholder="Subject" v-model="product_name" required>
                    ...   
                </form>    
            </div>
        </div>
    </div>         
</template>

<script>
    export default {
        name: 'MessageModal',
        props: ['productName'],
        data() {
            return {
                product_name: this.productName,
            }
        }
    }
</script>
<input type="text" class="form-control" id="subject" placeholder="Subject" v-model="product_name" required>
<form id="form-message">
    ...
</form>    

...
它起作用了。但是,如果我在表单中输入文本,为什么它不起作用呢


我该怎么解决呢?

我会这样做:

<template>
...
    <input type="text" class="form-control" id="subject" placeholder="Subject" v-model="pname" required>
...                
</template>

<script>
  export default {
    mounted() {
      this.pname = this.productName
    },
    props: ['productName'],
    data() {
        return {
            pname: "",
        }
    }
  }
</script>

...
...                
导出默认值{
安装的(){
this.pname=this.productName
},
道具:['productName'],
数据(){
返回{
pname:“”,
}
}
}

这样,当安装组件时,您可以将prop设置为组件的内部数据属性pname,并将输入字段的值与pname绑定。

@Bert Evans,请参阅我的问题。我有最新消息it@BertEvans,如果我把输入的文本放在表单上,它会工作的。但为什么我把输入文本放在表单中,它就不起作用了?好问题:)在某些情况下,页面上可能有其他库清除表单输入?我不认为这是Vue问题。@Bert Evans,看看这个:。它不工作,它不工作。你试着看看我的问题。我必须更新它