天天看點

Knockout應用開發指南 第八章:簡單應用舉例(2)

這個例子,對view model沒有什麼特殊的展示,隻是展示如何綁定到各種元素上(例如,select, radio button等)。

Knockout應用開發指南 第八章:簡單應用舉例(2)

代碼: View

Knockout應用開發指南 第八章:簡單應用舉例(2)
Knockout應用開發指南 第八章:簡單應用舉例(2)

View Code

代碼: View model

這個例子展示的render模闆,以及在模闆内部如何使用data binding屬性的。

Template很容易嵌套,當任何依賴資料改變的時候,Knockout會自動重新render模闆。參考示範(啟用‘Show render times’),Knockout知道隻需要重新render改變的那些資料所綁定的最近的模闆。

Knockout應用開發指南 第八章:簡單應用舉例(2)

data-bind="..."綁定(像text, visible, 和click不是固定死的) - 你可以很容易自定義自己的綁定。如果你的自定義綁定僅僅是添加事件或者更新DOM元素的屬性,那幾行就可以實作。不過,你依然可以自定義可以重用的綁定(或插件),就行本例的simpleGrid綁定。

如果一個插件需要自己标準的view model(例如本例的ko.simpleGrid.viewModel ),它提供既提供了該如何配置插件執行個體(分頁大小,列聲明)工作,也提供了view model上的屬性是否是observable 的(例如currentpage索引)。也可以擴充代碼讓這些屬性很容易地改變,并且讓UI自動更新。例如,“Jump to first page”按鈕的工作原理。

檢視HTML源代碼可以看到非常容易使用這個simple grid插件。simpleGrid源碼位址是:http://knockoutjs.com/examples/resources/knockout.simpleGrid.js

Knockout應用開發指南 第八章:簡單應用舉例(2)

該例子展示了2種方式實作動畫過渡效果:

當使用template/foreach綁定的時候,你可以使用afterAdd和beforeRemove回調函數,他們可以讓你寫代碼真實操作添加和删除元素,這樣你就可以使用像jQuery的 slideUp/slideDown()這樣的動畫效果。在planet types之間切換或添加新的planet可以看到效果。

通過observable 類型的值,我們不難定義自己的Knockout綁定,檢視HTML源代碼可以看到一個自定義綁定fadeVisible,不管什麼時候它改變了, jQuery就會在相關的元素上執行fadeIn/fadeOut動畫效果。點選“advanced options” checkbox 可以看到效果。

Knockout應用開發指南 第八章:簡單應用舉例(2)
Knockout應用開發指南 第八章:簡單應用舉例(2)

繼續閱讀