免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
JavaScript實(shí)現(xiàn)的MVVM框架Knockoutjs使用入門

 Knockoutjs是一個JavaScript實(shí)現(xiàn)的MVVM框架。主要有如下幾個功能:

1. Declarative bindings

2. Observables and dependency tracking

3. Templating

  1. 它對于分離前臺的業(yè)務(wù)邏輯和視圖簡化數(shù)據(jù)綁定過程有顯著的作用。閑言少敘,直接看例子,如何下載也不說了,如果用VS開發(fā)的話用Nuget就可以一鍵搞定。
  2. 1. 基本綁定和依賴跟蹤

首先需要定義一個ViewModel:

  1. <script type="text/javascript"> 
  2.     function ViewModel() { 
  3.         this.firstName = "Zixin"; 
  4.         this.lastName = "Yin"; 
  5.     } 
  6. </script> 

然后是一個用來顯示這個ViewModel的View:

  1. <div> 
  2.     <p data-bind="text: firstName"></p> 
  3.     <p data-bind="text: firstName"></p> 
  4.     <input data-bind="value: firstName"/>  
  5.     <input data-bind="value: lastName"/>  
  6. </div> 

從這個view中可以看到聲明式綁定的含義,只需要在標(biāo)簽上使用data-bind屬性,就可以將數(shù)據(jù)的值綁定到相應(yīng)的地方。有了View和ViewModel還需要代碼將這兩者關(guān)聯(lián)起來:

  1. ko.applyBindings(new ViewModel()); 

將他們放到一起,注意,applyBinding那代碼必須在頁面全部加載完之后執(zhí)行。頁面顯示為:

下面再看observables,這個功能不是與生俱來的,必須要把View Model設(shè)置為observable,方法如下:

  1. function ViewModel() { 
  2.      this.firstName = ko.observable("Zixin"); 
  3.      this.lastName = ko.observable("Yin"); 
  4.  } 

其他都不需要改變,這時候,如果改變輸入框中的值,當(dāng)焦點(diǎn)離開的時候,可以發(fā)現(xiàn)p中的值也跟著改變了:

下面再看dependency tracking,也就是如果一個值依賴多各值,其中任何一個值發(fā)生變化,它都會自動發(fā)生變化. 這是通過computed方法實(shí)現(xiàn)的,代碼如下:

  1. function ViewModel() { 
  2.      this.firstName = ko.observable("Zixin"); 
  3.      this.lastName = ko.observable("Yin"); 
  4.      this.fullName = ko.computed(function () { return this.lastName() + " " + this.firstName(); },this); 
  5.  }  

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Knockout應(yīng)用開發(fā)指南 第二章:監(jiān)控屬性(Observables)
從Knockout到AngularJS
iOS 架構(gòu)模式
MVVM 介紹
MVVM With ReactiveCocoa
knockout 筆記--API
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服