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

时间:2010-09-08 17:15:08

标签: javascript binding sproutcore

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

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

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

1 个答案:

答案 0 :(得分:6)

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

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