저는 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-model과 같이 입력을 통해 값을 변경하면 해당 값이 업데이트됩니다.
첫 번째 작품은 propertyOne을 "Foo"로 설정하면 처음에는 입력 값으로 사용되지만 후속 변경 사항은 속성을 업데이트하지 않는다는 것을 의미합니다. 10 개 이상의 필드가있는 경우 방대한 정적 템플릿을 작성하는 대신 v-for 훅의 힘을 활용할 수 있도록이 기능을 사용하고 싶습니다.
답장을 보내 주셔서 감사합니다. 내가 겪고있는 문제는 바로 this입니다. propertyTwo는 객체의 "model"속성을 통해 v-model 지시문을 사용하여 입력에 바인딩되므로 입력 값의 변경 사항으로 인해 propertyTwo에서 watcher가 트리거되지 않습니다. 아직 계산 된 속성으로 시도하지는 않았지만 단방향 바인딩이므로 문제를 해결할 수는 없지만 잘못된 것일 수 있습니다. –
@BrendanB. v-model과 함께'propertyTwo'를 사용한다면, 그것은 감시자를 트리거해야합니다, 당신은 그 코드를 추가 할 수 있습니까? – Saurabh
당신은 내가 처음 게시물에서 달성하려고하는 것을 볼 수 있습니다. v-for 지시문을 사용하여 데이터를 반복 할 수 있도록'propertyTwo' 대신 v-model 지시문에서'field.model'을 사용하고 싶습니다. 템플릿에서'propertyTwo'를 사용한다면 v-for는 템플릿에서 속성 바인딩을 수동으로 선언해야하므로 쓸모가 없습니다. –