私は、vueインスタンス内のデータ属性を更新するために、ネイティブのJavaScriptイベントを入力で発生させる方法を見つけようとしています。vantjs2 v-modelネイティブのjavascript変更イベント
だから私は、この入力持っているため、この投稿へhttps://github.com/vuejs/vue/issues/96#issuecomment-37870300
私が問題にビットを検索しています(そしてそれは私が解決策がネイティブJavaScriptのイベントであることを示唆している部分になった方法です):
を<input type="text" name="occurred" id="occurred" class="form-control" required="" v-model="occurred">
とJavaScriptを通じて、私はVUEは、V-モデルを更新できるように、それはネイティブのイベントの姿しようとしてる=(私はpickadate.jsを使用しています)、「発生しました」
$('#occurred').pickadate({
format: 'dddd, dd mmm, yyyy',
formatSubmit: 'dd-mm-yyyy',
hiddenPrefix: 'prefix__',
hiddenSuffix: '__suffix'
});
var evt = document.createEvent('HTMLEvents');
evt.initEvent('change', true, true);
var el = document.getElementById("occurred");
el.dispatchEvent(evt);
私はいくつかの方法で試しましたが、どのように動作するのか完全に理解できないようです。
解決策を私に説明してもらいたいのであれば、私はそれを理解したいと思っています。
私が説明するためのフィドル作成しました:https://jsfiddle.net/c1askwj2/5/
編集: ソリューションは、私が行うにはしたくないものを行うことですが。基本的にはあなたのビューオブジェクトを「公開」:
var vueFoo = new Vue({ ... });
あなたはvarFoo.thedateを介してアクセスし、それを設定することができるこの方法を:私は維持したいと私に
$('#thedate').pickadate({
onSet: function(value) {
var date = new Date(value.select);
vueFoo.thedate = date.getDate() + '-' + date.getMonth() + 1 + '-' + date.getFullYear();
}
});
これは非常に醜いソリューションです。ビューオブジェクトを使用できません...
ソリューションが美しいです。私は少しコードを変更しました。これを提案したいと思います:https://jsfiddle.net/c1askwj2/7/あなたはどう思いますか?私はあなたの '時計'を理解していない、あなたは私にそれを説明することができますか? – FPJ