工作變更,又走回了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代碼:
動畫效果圖:

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'。
針對該五個綁定元素,簡單示範一下功能:
動畫效果圖:
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代碼:
16、uniqueName:綁定DOM元素有一個非空的name屬性,在沒有設定name屬性下,會綁定上一個而唯一的name屬性。(使用場景太少,個人還沒有使用過)
0、foreach: 綁定到DOM元素上,将關聯的viewModel中指定集合或數組循環輸出,并動态更改html代碼。配合table、div等控件使用。(個人最喜歡的綁定元素,強大的存在)
Html:
本次對于所有綁定元素進行了簡單的功能講解和操作,後期将會綜合運用這些完成一些功能。
代碼位址:https://gitee.com/530521314/Partner.TreasureChest.git