2017-09-28 2 views
0

현재 VueJS의 v-model 반응성이 어떻게 작동하는지 이해하는 데 어려움을 겪고 있습니다.JS/일부 플러그인을 통해 값을 업데이트 할 때 vue js v-model의 반응성

필자에게 선택 필드의 스타일을 지정하는 데 도움이되는 선택 플러그인이 있지만 물론 JS를 통해 선택 필드 값을 변경합니다. 문제는 v-model이 값을 업데이트하지 못하도록하는 것입니다. document.getElementById('field').value = 'whatever', v-model은 업데이트하면 업데이트되지 않고 필드에 직접 입력하거나 실제 선택 필드를 클릭 할 때만 업데이트됩니다.

내가 읽었을 때, Vue는 input 이벤트를 수신하여 반응성을 트리거하는 것으로 보이며 JS로 필드의 값을 변경하면 이벤트가 실행되지 않고 변수의 값은 업데이트되지 않습니다. .

나는이 사실을 더 깊이 이해하고 다음에 일어날 때 이런 종류의 문제를 처리 할 가장 좋은 방법이 필요합니다. 이 이벤트에서 플러그인의 이벤트를 제어 할 수없는 최상의 솔루션은 무엇입니까? 값이 동적으로 변경되었을 때 어떻게 Vue를 청취 할 수 있습니까?

도움 주셔서 감사합니다.

답변

1

이것이 도움이 될지 확실하지 않지만 양식 입력 요소를 살펴 보았습니까? https://vuejs.org/v2/guide/components.html#Form-Input-Components-using-Custom-Events

입력 구성 요소는 해당 구성 요소와 연결된 v-model의 값을 업데이트하기 위해 이벤트를 외부로 방출해야합니다.

당신은 또한 당신이 문제가 입력 값이 https://vuejs.org/v2/guide/computed.html#Computed-vs-Watched-Property

나는이 도움말을 희망 변경되었는지 여부를 파악하는 데 문제가있는 경우 watchers을 확인 할 수 있습니다.

+0

나는 이것이별로 도움이되지 않는다고 생각합니다. 필자는 입력 컴포넌트가 없으며, 필자는'select '필드의 스타일을 결정하는 jQuery 플러그인을 사용하고있다. 또 다른 입력에 바인딩 된 날짜 선택을위한 다른 플러그인을 사용하여 값을 변경한다. 값이 변하면 v-model. 나는 'v-model'에'.lazy'를 추가하여 datepicker를 작동시킬 수 있었지만, 그것은 select에서 작동하지 않는 것처럼 보이고, 오른쪽처럼 보이지 않습니다. 모든 단서? –

+1

오, 알았습니다. 그래서'jQuery'와'VueJs' 사이의 전투입니다. jQuery 플러그인이 이벤트를 전달하는지 확인하십시오. Vue 구성 요소 내에서 이러한 이벤트를 수신 한 다음 그에 따라 값을 업데이트 할 수 있습니다. –

+0

나는이 방법이 너무 수동적 인 것처럼 보이지 않도록하고 싶었지만 다른 방법이 있는지 모르겠습니다. 나는 그것을 시도 할 것이다, 고마워. –