私は JavaScript に Metawidgets を使用しており、変更が加えられた場合は、サーバーにルーティングせずに更新されたドメイン モデルにアクセスして表示したいと考えています (例: すべて同じクライアント側の JavaScript 内)。悲しいことに、私が見つけたすべての例は、サーバーに戻るか、フレームワークにプラグインされていました。
更新されたモデルを取得する際の問題を示す例を次に示します。ページの値を変更し、[表示] をクリックして、コンソール ウィンドウを確認します。まだ古い値が表示されていることに注意してください。
<!DOCTYPE html>
<html>
<head>
<script src="metawidget-4.1/js/lib/metawidget/core/metawidget-core.min.js" type="text/javascript"></script>
</head>
<body style="font-family:Arial">
<div id="metawidget"></div>
<script type="text/javascript">
var mw = new metawidget.Metawidget( document.getElementById( 'metawidget' ) );
mw.toInspect = {
name: 'X',
age: 40,
display: function(x) {
// This never shows the updated model if the user changes values
console.log(this);
}
};
mw.buildWidgets();
</script>
</body>
</html>
ドメイン オブジェクトがコードから変更された場合、Metawidget がドメイン オブジェクトの更新されたバージョンを自動的に表示するようにするにはどうすればよいですか? たとえば、年齢を増やした場合 (例: ディスプレイ内から person.age++ または this.age++)、ページはこれを自動的に反映しません。