Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的简单可观察双向数据绑定_Javascript_Jquery_Observable_2 Way Object Databinding - Fatal编程技术网

JavaScript中的简单可观察双向数据绑定

JavaScript中的简单可观察双向数据绑定,javascript,jquery,observable,2-way-object-databinding,Javascript,Jquery,Observable,2 Way Object Databinding,我知道很多著名的MVC、M**风格的JavaScript框架都允许与可观察对象进行双向绑定 意思是如果我: 更新一个DOM输入文件,它还将更新一个JavaScript对象变量,该变量也可以通过AJAX请求保存到服务器 如果我更新JavaScript对象变量,它也会反过来更新DOM文本字段 在我学习JavaScript时,我想跳过大名鼎鼎的库,学习如何以最基本的原始JavaSript形式实现这一点 任何人都可以在不使用BackboneJS、Knockout、Angular或其他库的情况下提供此

我知道很多著名的MVC、M**风格的JavaScript框架都允许与可观察对象进行双向绑定

意思是如果我:

  • 更新一个DOM输入文件,它还将更新一个JavaScript对象变量,该变量也可以通过AJAX请求保存到服务器
  • 如果我更新JavaScript对象变量,它也会反过来更新DOM文本字段
在我学习JavaScript时,我想跳过大名鼎鼎的库,学习如何以最基本的原始JavaSript形式实现这一点

任何人都可以在不使用BackboneJS、Knockout、Angular或其他库的情况下提供此功能的快速、易于理解的演示吗

jQuery是可以接受的


我将感谢您的教训和帮助。

这在每个框架中都是不同的

例如,Angular保存作用域上的每个变量。遍历scopes变量,并将这些值与前面的值进行比较,如果有更改,则对DOM执行更改

这种检查是在他们调用摘要周期时进行的。如果一个周期结束,它将再次调用,直到每个“观察到的”变量与前一个周期中的变量相同。您还可以将对象或变量添加到此“观察者”

Angular保持视图的最新状态,每次有什么东西可以改变“观察到的”变量时都调用这个摘要,比如http调用、用户交互。。。但是,例如,如果从angular(控制台)外部更改变量,则不会对DOM执行变量更改。您必须手动调用摘要循环才能执行此操作

在HTML5中,Object.observe更容易使用,但目前市场上的每个浏览器都不支持它


希望我能提供帮助

我没有时间写完整的答案,但您可能想看看Observer设计模式。这是MVC和其他框架中的关键模式之一。基本上,当您更改值时,您会通知每个观察者,然后观察者接受新值。当然,你可以用两种方法来做,也许这是一个更好的术语context@Dr.Molle谢谢分享,我以前从未听说过!看见