0
我對VueJS相對較新,想知道如何在其他組件中嵌套/引用組件的屬性,以便V模型綁定實際上可以更新它們。VueJS嵌套數據模型
爲了說明,我正在嘗試做這樣的事情。
模板:
<table>
<tr v-for="field in myFields">
<td class="label">{{field.label}}</td>
<td class="user-control">
<input v-model="field.model">
</td>
</tr>
</table>
組件:
export default {
data() {
return {
myFields: [
{
"label": "label",
"model": this.propertyOne
},
{
"label": "label",
"model": this.propertyTwo
}
],
propertyOne: "",
propertyTwo: ""
}
}
}
在這個例子中,我期待的模板首先呈現在輸入propertyOne和propertyTwo值(例如空字符串),和那麼當我通過輸入改變它們時,就會更新這些值,就像通常用v模型做的那樣。
第一個作品,這意味着如果我將propertyOne設置爲「Foo」,它將最初用作輸入值,但後續更改仍不會更新屬性。 我很喜歡這個工作,這樣我就可以利用v-for hook的強大功能,而不必在超過10個字段的情況下寫下大量的靜態模板。
感謝您的回覆。我遇到的問題正是這樣 - 因爲propertyTwo通過對象的「model」屬性使用v-model指令綁定到輸入,所以在輸入值中所做的更改不會觸發propertyTwo上的觀察器。我還沒有嘗試過計算屬性,但我確信它們是單向綁定,所以它也不能解決問題,但也許我錯了。 –
@BrendanB。如果你在v-model中使用'propertyTwo',它應該觸發觀察者,你可以添加代碼還是創建一個小提琴? – Saurabh
你可以在最初的帖子中看到我想要達到的目標。我想在v-model指令中使用'field.model',而不是'propertyTwo',這樣我就可以使用v-for指令來遍歷數據。如果我要在模板中使用'propertyTwo',那麼v-for就沒用了,因爲我需要在模板中手動聲明屬性綁定,不是嗎? –