2012年8月13日 星期一

Knockouts 1 簡介

knockoutjs 
特性:
  • Elegant dependency tracking (優雅的依賴跟蹤):
        當你的data model改變時,都會自動更新對應UI。
  • Declarative bindings (宣告綁定):
        簡易的方式將你的UI與Data Model建立關聯(bindings)。
  • Trivially extensible (容易擴展):
        只需要幾行代碼即可實現自訂行為作為新的聲明綁定。

好處:
  • Pure Javascript Library :
        純Javascript類別庫,能運行於Server或是Client端。
  • Can be added on top of your existing web application:
        能添加到現行的應用程序中,而不需大架構改變。
  • Compact:
        小巧的,壓縮後只有13kb。
  • Works on any mainstream browser:   
        能運行在任何的主流瀏覽器上(IE 6+, Firefox 2+, Chrome, Safari, others)。
  • Comprehensive suite of specifications (developed BDD-style):   
        採用行為驅動開發 - 意味著在新的瀏覽器與平台上可以容易通過驗證。
核心功能:
  • Observables and dependency tracking:
        當data model改變時能夠自動更新UI。
  • Declarative bindings:
        簡易語法能容易的將model關聯到DOM元素上。
  • Templating:
       使用嵌套模板可以建立複雜的介面。


載入:
    <script type='text/javascript' src='knockout-2.1.0.js'></script>

example:


<!DOCTYPE html>
<html>
<head>
<title>easy example</title>
<meta charset="UTF-8"/>
<script src="lib/jquery-1.7.1.min.js"></script>
<script src="lib/knockout-2.1.0.js"></script>
<script>
$(document).ready(function(){
var myViewModel =
{
myData: ko.observableArray([ '一月', '二月', '三月', '四月' ])
};
ko.applyBindings(myViewModel);
});
</script>
</head>
<body>
<ul data-bind="foreach: myData">
   <li>
       <span>當前項目:</span><b data-bind="text: $data"></b>
   </li>
</ul>
第一項為:<span data-bind="text:myData()[0]"></span></br>
陣列長度:<span data-bind="text:myData().length"></span></br>
</body>
</html>


結果:
  • 當前項目: 一月
  • 當前項目: 二月
  • 當前項目: 三月
  • 當前項目: 四月
第一項為:一月
陣列長度:4

沒有留言:

張貼留言