I 양식을 제출하기 위해 다음과 같은 기능을 가지고 :라인이 종료
drawing
변수는 같은
my_form
내에서 입력에 할당
methods: {
submit_form: function() {
this.drawing = dat.toImage();
this.$refs.my_form.submit()
}
}
:
<input type="text" name="doodle" :value="drawing">
문제는 this.drawing
이 dat.toImage()
값으로 업데이트되기 전에 양식이 전송되고 있다는 것입니다. 실제로, 만약 두로 이전 기능을 분할 :
methods: {
submit_form: function() {
this.$refs.my_form.submit()
},
set_drawing: function() {
this.drawing = dat.toImage()
}
}
을 내가 set_drawing()
다음 submit_form()
(두 개의 서로 다른 버튼)를 먼저 실행하면, 다음 양식이 제대로 업데이트 된 도면 값으로 전송됩니다. 따라서 두 가지 행이 같은 함수에있을 때 어떤 이유로 인해 이전 행의 실행이 끝나기 전에 양식이 전송됩니다.
왜 이런 일이 발생하고 어떻게 해결할 수 있는지에 대한 아이디어가 있습니까?
UPDATE :이 중 하나가 작동하지 않습니다
, 널 값 형태로 전송됩니다.
data: {
drawing: null
}
methods: {
submit_form: function() {
this.drawing = dat.toImage();
while (this.drawing == null) {
false
}
this.$refs.my_form.submit()
}
}
는 내가 가진 drawing
를 초기화 어떤 값 형태로 전송되는 값입니다 보인다. 사실 나는 웹 사이트에 drawing
의 값을 표시하고 있습니다. 제출을 클릭하면 변경 사항이 표시되지만 위의 루프는 끝나지 않습니다.
.toImage
메소드는 atrament.js 라이브러리에 속합니다.
<form method="POST" class="model-form" v-on:submit.prevent="submit_form()" ref="my_form">
답장을 보내 주셔서 감사합니다. 이것이 문제의 근원이 될 수 있는지를 확인하기 위해 좀 더 실험을했는데 그렇게 보이지는 않습니다. 이 정보로 질문을 업데이트했습니다. – user1294122
@ user1294122 편집 된 버전에서 약속을 사용하는 것을 보지 못했습니다. 사용 방법에 대한 예제 [here] (https://spring.io/understanding/javascript-promises)를 볼 수 있습니다. – Saurabh
@ user1294122 업데이트에서, 당신은 똑같은 실수를하고 있습니다. [내가 한 번] (http://stackoverflow.com/questions/31210242/whilecount-3-fail-to-check-callback-state), 생각하고있는 자바 스크립트 * 비동기 작업이 수행되는 순간 콜백 코드를 실행합니다. 사실, js는 함수의 끝 부분에 도달 할 때마다 excute 할 콜백이 있는지 확인하여 우리 둘 모두에 의해 오용 된 while 루프가 작동하지 않습니다 우리가 원하는 방식. –