【发布时间】:2013-05-27 18:12:26
【问题描述】:
我最近越来越多地看到术语“绑定”和“实时绑定”,尤其是在 Ember.js、Can.js、Knockout.js 和 Backbone.js 等 JavaScript 框架中,更传统的是,在Cocoa 和 Objective-C,想知道绑定到底是什么? (究竟什么是“实时绑定”?)。
似乎从广义上讲,我们可以“将 A 绑定到 B”,然后我们可以说,“A 绑定到 B”,也就是说 B 的变化会反映在 A 中——自动,无需用户担心必须设置观察者,但观察者会更早自动设置并在 B 更改时自动通知。
当我们这样做时,我们正在创建一个“绑定”。
从更严格的意义上讲,Cocoa 和 Objective-C 似乎是这样定义的:绑定是对象 A 的 property foo,而这个属性观察并更改为对象B的属性bar的值。它是如何发生的,我们不在乎,它应该是隐藏的(就像一个黑盒子),通常它是由观察者模式实现的。所以“绑定”这个词实际上意味着一个“属性”,而不是一个动作——并且这个属性观察并被更改为与另一个属性相同的值。
而且这种绑定不仅限于绑定到数据的 UI 元素。它可以是包含较小部分 UI 元素的外部较大 UI 元素,并且外部 UI 元素具有绑定到内部 UI 元素属性的属性。或者它可以是绑定到另一个非 UI 数据属性的一个非 UI 数据属性。
这就是绑定吗?那么实时绑定呢?
【问题讨论】:
-
只是我的两分钱,IMO 你完全正确地理解了绑定是什么,并且实时绑定几乎相同,但名称不同。
-
我想你已经回答了你自己的问题,很好。 :)
标签: data-binding backbone.js binding ember.js cocoa-bindings