天天看點

KnockoutJS-綁定元素

  工作變更,又走回了WPF,一個來月沒有接觸web開發了,之前的KnockoutJS卻不想放棄,繼續進行知識的鞏固,下個月開始重新走回web開發之路,還是得用回一些習慣了的工具。本次開始接觸各綁定元素功能、用法,這些綁定方式是在使用ko過程中用的最多的。

綁定元素在KnockoutJS中可以分為三大類

  1、文本控制與顯示隐藏

  2、流程控制

  3、配合表單使用

從個人使用過程中應用程度進行排序展示:

1、value:在DOM元素與viewModel對象的屬性間建立橋梁,使用者編輯控件時viewModel中對應屬性值将自動更新,同樣在更新了對應屬性後,使用者控件展示資料也将自動更新。常用于input、select、textarea等控件;

2、text:綁定到DOM元素上,将viewModel對象的屬性的值展示在綁定元素上。常用于p、pre、label、span、th、td等控件使用;

3、click:綁定到DOM元素上添加事件句柄,當點選事件被觸發時,執行我們定義好的JS函數。常用于button、input、a等控件使用。

  click說明:在綁定函數時,可以指定任意函數,即在viewModel中聲明的函數和在viewModel之外聲明的函數都可被調用,同時在調用viewModel之内的函數時可以直接寫函數名,而無需帶上viewModel對象名。

4、visible:綁定到DOM元素上,該元素的隐藏或顯示将有viewModel的屬性狀态、函數傳回值或表達式來決定。

針對前四個綁定元素,簡單示範一下功能:

Html:

JS代碼:

 動畫效果圖:

KnockoutJS-綁定元素

5、options:該綁定元素隻用于在select中使用,通過關聯viewModel中提供的數組,使得select控件能夠展示出數組中的所有項。

  options,用于綁定下拉清單中各項(可選參數-optionsCaption,在預設情形下不想選擇任何一個option項時,給予提示語,諸如“---請選擇---”、或“---------”之類的,作為預設選項,該項的值為undefined)。

  optionsText,用于确定下拉清單中每一項的指定屬性作為展示列,并可以在此基礎上進行擴充,将指定屬性傳入函數中加工傳回新的展示資訊,。

  optionsValue,用于确定下拉清單中每一項的指定屬性作為辨別列。

6、checked:綁定到type為checkbox的input控件上,關聯viewModel的屬性狀态,互相間的變動都會使得雙方更新狀态,狀态有選中和未選中。僅用于input控件指定類型為checkbox時使用。

7、css:将一個或多個class動态綁定到DOM元素上,根據具體業務變更綁定的class。常用于class之間大範圍樣式的切換,通過設計JS函數完成指定class是否啟用。注意:在設計class時如果存在不合法的命名下,如my-class需轉換為‘my-class’。

8、style:作用效果小于css,将一個或多個style的值綁定到DOM元素上,常用于單個或少數量style變更時使用。

9、attr:更改DOM元素的任何屬性值,關聯viewModel上對應的attr屬性值,便于動态更改展示。注意:在取屬性名稱時如果存在不合法的命名下,如data-something需轉換為'data-something'。

針對該五個綁定元素,簡單示範一下功能:

動畫效果圖:

KnockoutJS-綁定元素

10、html:綁定到DOM元素上,并将viewModel的屬性值作為展示,與text用法相同,但不同處在于,html可以将内容中存在的html标記渲染為真實的html内容。(個人建議少用或不用)

11、event:為DOM元素的事件添加指定的事件句柄,事件被觸發時執行我們定義好的邏輯。常用在keypress、mouseover、mouseout事件上。與click用法一樣,可以設定為任意的js函數。

12、submit:綁定在表單上用于送出時攔截預設表單送出動作,執行我們定義好的邏輯,然後真正執行送出操作,該送出表單操作可以是原有form表單送出,也可以是我們設計的表單送出,通過參數設定。僅用于form控件。

13、enable:綁定DOM元素自身的啟用禁用狀态,關聯viewModel的屬性狀态,來控制該DOM元素的啟用。常用于input、select、textarea等控件中。

14、disable:與enable功能相同,使用方式相反,當disable為true時将被禁用。常用于input、select、textarea等控件中。

15、selectedOptions:在multi-select清單中,選擇一個或多個項,并将選中的項加入到selectedOptions關聯的viewModel的屬性數組中。常用于多選項選擇。

針對該六個綁定元素,簡單示範一下功能:

JS代碼:

KnockoutJS-綁定元素

16、uniqueName:綁定DOM元素有一個非空的name屬性,在沒有設定name屬性下,會綁定上一個而唯一的name屬性。(使用場景太少,個人還沒有使用過)

0、foreach: 綁定到DOM元素上,将關聯的viewModel中指定集合或數組循環輸出,并動态更改html代碼。配合table、div等控件使用。(個人最喜歡的綁定元素,強大的存在)

Html:

KnockoutJS-綁定元素

 本次對于所有綁定元素進行了簡單的功能講解和操作,後期将會綜合運用這些完成一些功能。

 代碼位址:https://gitee.com/530521314/Partner.TreasureChest.git