-1
を結合:私は隠された値を設定し、私のjavascriptのfucntionでVue.js - Vモデルは、私は次の隠し入力持っている隠された入力
<input id="myHiddenInput"
name="myHiddenInput"
type="hidden"
v-model="comment.myHiddenInput"
v-on:change="comment.myHiddenInput=$event.target.value">
var app = new Vue({
el: '#app',
data: {
comment: {'myHiddenInput': ''}
}
})
を、次のように変更イベントをトリガー:
var myFunction = function() {
$('#myHiddenInput').val(JSON.stringify(hiddentStuff)).trigger('change');
};
しかし、上記はうまくいきません。つまり、双方向バインディングは機能しません。
しかし、私はこれを行う場合、それは動作します:独自に.trigger('change')
十分ではありませんなぜ
var myFunction = function() {
$('#myHiddenInput').val(JSON.stringify(hiddentStuff)).trigger('change');
document.getElementById('myHiddenInput').dispatchEvent(new Event('change'));
};
は、なぜ私はdispatchEvent(new Event('change'))
aswellを呼び出すために必要なのですか?
jQueryは独自のイベントシステムを使用しているため、VueはDOMイベントで動作します。最後の質問で言及したように、 'app'を使って値を直接設定する方が良いでしょう。 https://codepen.io/Kradek/pen/pdxWzg?editors=1010 – Bert