
86
|
第五章
繫結機制(Binding)
學會繫結機制,才能真正體會從用戶端產生檢視器的好處。繫結指的是把檢視器元件和
JavaScript 物件(通常是模型)綁在一起。當 JavaScript 物件的內容有變動時,檢視器也
會自動同步更新相關內容。也就是說,把檢視器和模型綁在一起後,只要模型有變動,
就會自動重新產生新的檢視器內容。
繫結可說是非常重要的功能。有了這項功能,就不需要在資料異動時,透過控制器去更
新檢視器內容,一切都會自動完成。此外,善用繫結機制管理應用程式,也可說是為建
立即時應用程式(請參閱本書第八章)舖路。
如果要把 JavaScript 物件和檢視器綁在一起,就得在物件的屬性有異動時,透過一
個回叫函式來觸發檢視器的更新。但 JavaScript 並沒有內建這樣的函式(像 Ruby 或
Python,就有提供類似
method_missing
的功能),而且目前也沒辦法利用 JavaScript
的取值函式(getter)和設值函式(setter)(
http://ejohn.org/blog/javascript-getters-and-
setters
)模擬出類似的功能。不過由於 JavaScript 是一種非常有彈性的程式語言,因此
還是能自行開發出
change
回叫函式:
var addChange = function(ob){
ob.change = function(callback){
if (callback) {
if ( !this._change ) this._change ...