gpt4 book ai didi

javascript - 如何在客户端内的 Metawidgets (JavaScript) 中获取并显示更新的域模型?

转载 作者:行者123 更新时间:2023-12-03 10:42:08 28 4
gpt4 key购买 nike

我正在使用 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++),页面不会自动反射(reflect)这一点。

最佳答案

您在这里问两个问题。我会分别回答。

  1. 如何让 Metawidget 将小部件中的值保存回域对象中?为此,您的代码应如下所示:

       display: function(x) {
    mw.save();
    console.log(this);
    }
  2. 如何让 Metawidget 使用新值重新绘制小部件?为此,您的代码应如下所示:

       display: function(x) {
    this.age++;
    mw.buildWidgets();
    }

但是,我应该说您编写这段代码的方式有点奇怪。如果它只是一个用于学习目的的快速示例,那很好,但在生产代码中,您可能希望将事物解耦。

例如,您通常不会内联定义 .toInspect,也不会在其上包含直接引用 mw 的函数。

关于javascript - 如何在客户端内的 Metawidgets (JavaScript) 中获取并显示更新的域模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28727331/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com