在JavaScript Web应用程序中实现类似SproutCore的绑定

dav*_*ers 2 javascript binding sproutcore

我已经完成了SproutCore教程,并了解了框架提供的内容.这看起来很神奇,虽然我不确定我对一个在幕后生成HTML和CSS的框架的感觉.关于SproutCore我觉得最吸引人的是它的绑定 - 减少保持所有内容同步所需的胶水代码量只能是一件好事.

我有兴趣了解SproutCore的绑定是如何实现的.我希望能够利用绑定而不必使用SproutCore等框架.

如何编写绑定数据及其表示所需的JavaScript代码,如何在没有任何粘合代码的情况下立即反映数据的变化?

小智 6

使用SproutCore使用SC提供的'get'和'set'方法.Observable mixin可以实现键值观察.当你创建一个绑定时,它基本上建立了一个观察者,当它在观察的值上调用'set'方法时触发,然后传播更改.当绑定绑定到页面上的视图时,绑定会调用必要的视图代码来对DOM进行更改.您可以在http://docs.sproutcore.com上查看SC.ObservableSC.Binding的 API文档和源代码.

由于SproutCore分为多个"框架",您可以采用这个核心内容所在的框架,称为"运行时",并在项目中使用它,而不需要您不需要的所有数据存储和视图层.您也可以尝试自己重现此功能,但我想知道您是否最终必须重现他们创建的大部分内容.