フォームにデータを入力しているときに、ビュー モデルの動作を観察したい状況があります。モデルのように見える多くのフィールドを定義してそれらにバインドすることでこれを行うことができますが、それはちょっと面倒です。
現在、次のコードでこれを達成しています。
(function ($) {
$.printJSON = function(value){
return JSON.stringify(value, undefined, 2);
}
})(jQuery);
var viewModel = kendo.observable({
// other fields etc
update: function (e) {
e.preventDefault();
$("#json_result").html($.printJSON(this));
}
});
<div style="width: 400px; float: left; padding-left: 15px;" >
<button data-bind="click: update" value="Update" >Update</button>
<pre id="json_result">
</pre>
</div>
ボタンをクリックすると、関数が実行され、ビュー モデルの JSON が画面に描画されます。すべて適切に書式設定されています。
ただし、これにはまだボタンのクリックが必要です。それは私にとってそれほど大きな問題ではありませんが、これは多くの状況で必要なものではないため、実際にこれを行い、ビューモデルが何らかの形で変更されたときに更新する方法はありますか? 関数にバインドしようとしましたが、明示的な呼び出しなしでは更新されません。ビュー モデルに直接バインドしようとしましたが、それも機能しませんでした。