Knockout visible綁定使用方法
更新時(shí)間:2013年11月15日 09:43:04 作者:
本文講解Knockout讓visible綁定到DOM元素上,使得該元素的hidden或visible取決于綁定的值,下面有代碼參考
簡(jiǎn)單的綁定
首先還是先定義一個(gè)ViewModel
var AppViewModel = {
shouldShowMessage: ko.observable(true) ///初始化的時(shí)候div是visible的
};
AppViewModel.shouldShowMessage = ko.observable(false); ///現(xiàn)在hidden勒
ko.applyBindings( AppViewModel);
并且通過(guò)ko.applyBindins進(jìn)行激活Knockout。
然后定義一個(gè)UI界面元素
<div data-bind="visible:shouldShowMessage">
You will see this message only when "shouldShowMessage" holds a true value.
</div>
運(yùn)行之后此div在初始化的時(shí)候還是顯示的可以,之后就被重新賦值為false,導(dǎo)致此div被隱藏掉了。
參數(shù):
當(dāng)參數(shù)設(shè)置為一個(gè)假值時(shí)(例如:布爾值false, 數(shù)字值0, 或者null, 或者undefined) ,該綁定將設(shè)置該元素的style.display值為none,讓元素隱藏。它的優(yōu)先級(jí)高于你在CSS里定義的任何display樣式。
當(dāng)參數(shù)設(shè)置為一個(gè)真值時(shí)(例如:布爾值true,或者非空non-null的對(duì)象或者數(shù)組) ,該綁定會(huì)刪除該元素的style.display值,讓元素可見(jiàn)。然后你在CSS里自定義的display樣式將會(huì)自動(dòng)生效。
如果參數(shù)是監(jiān)控屬性observable的,那元素的visible狀態(tài)將根據(jù)參數(shù)值的變化而變化,如果不是,那元素的visible狀態(tài)將只設(shè)置一次并且以后不在更新。
使用函數(shù)或者表達(dá)式來(lái)控制元素的可見(jiàn)性
你也可以使用JavaScript函數(shù)或者表達(dá)式作為參數(shù)。這樣的話(huà),函數(shù)或者表達(dá)式的結(jié)果將決定是否顯示/隱藏這個(gè)元素。例如:
<script type="text/javascript">
var AppViewModel = {
shouldShowMessage: ko.observable(true), ///初始化的時(shí)候div是visible的
myValues: ko.observableArray([])
};
AppViewModel.shouldShowMessage = ko.observable(false); ///現(xiàn)在hidden勒
AppViewModel.myValues.push("some value"); ///向myValues數(shù)組中 添加一個(gè)項(xiàng)
ko.applyBindings( AppViewModel);
</script>
在ViewModel中添加了一個(gè)myValues的屬性值
同時(shí)給myValues的數(shù)組添加了一個(gè)項(xiàng)
并且在頁(yè)面UI中綁定了一個(gè)元素
<div data-bind="visible: myValues().length > 0">
You will see this message only when 'myValues' has at least one member.
</div>
就這樣當(dāng)添加完"some value"元素之后,myValues().length>0 則結(jié)果為true
那么此div就會(huì)顯示出來(lái)。
首先還是先定義一個(gè)ViewModel
復(fù)制代碼 代碼如下:
var AppViewModel = {
shouldShowMessage: ko.observable(true) ///初始化的時(shí)候div是visible的
};
AppViewModel.shouldShowMessage = ko.observable(false); ///現(xiàn)在hidden勒
ko.applyBindings( AppViewModel);
并且通過(guò)ko.applyBindins進(jìn)行激活Knockout。
然后定義一個(gè)UI界面元素
復(fù)制代碼 代碼如下:
<div data-bind="visible:shouldShowMessage">
You will see this message only when "shouldShowMessage" holds a true value.
</div>
運(yùn)行之后此div在初始化的時(shí)候還是顯示的可以,之后就被重新賦值為false,導(dǎo)致此div被隱藏掉了。
參數(shù):
當(dāng)參數(shù)設(shè)置為一個(gè)假值時(shí)(例如:布爾值false, 數(shù)字值0, 或者null, 或者undefined) ,該綁定將設(shè)置該元素的style.display值為none,讓元素隱藏。它的優(yōu)先級(jí)高于你在CSS里定義的任何display樣式。
當(dāng)參數(shù)設(shè)置為一個(gè)真值時(shí)(例如:布爾值true,或者非空non-null的對(duì)象或者數(shù)組) ,該綁定會(huì)刪除該元素的style.display值,讓元素可見(jiàn)。然后你在CSS里自定義的display樣式將會(huì)自動(dòng)生效。
如果參數(shù)是監(jiān)控屬性observable的,那元素的visible狀態(tài)將根據(jù)參數(shù)值的變化而變化,如果不是,那元素的visible狀態(tài)將只設(shè)置一次并且以后不在更新。
使用函數(shù)或者表達(dá)式來(lái)控制元素的可見(jiàn)性
你也可以使用JavaScript函數(shù)或者表達(dá)式作為參數(shù)。這樣的話(huà),函數(shù)或者表達(dá)式的結(jié)果將決定是否顯示/隱藏這個(gè)元素。例如:
復(fù)制代碼 代碼如下:
<script type="text/javascript">
var AppViewModel = {
shouldShowMessage: ko.observable(true), ///初始化的時(shí)候div是visible的
myValues: ko.observableArray([])
};
AppViewModel.shouldShowMessage = ko.observable(false); ///現(xiàn)在hidden勒
AppViewModel.myValues.push("some value"); ///向myValues數(shù)組中 添加一個(gè)項(xiàng)
ko.applyBindings( AppViewModel);
</script>
在ViewModel中添加了一個(gè)myValues的屬性值
同時(shí)給myValues的數(shù)組添加了一個(gè)項(xiàng)
并且在頁(yè)面UI中綁定了一個(gè)元素
復(fù)制代碼 代碼如下:
<div data-bind="visible: myValues().length > 0">
You will see this message only when 'myValues' has at least one member.
</div>
就這樣當(dāng)添加完"some value"元素之后,myValues().length>0 則結(jié)果為true
那么此div就會(huì)顯示出來(lái)。
您可能感興趣的文章:
- Knockoutjs 學(xué)習(xí)系列(二)花式捆綁
- Knockoutjs 學(xué)習(xí)系列(一)ko初體驗(yàn)
- BootstrapTable與KnockoutJS相結(jié)合實(shí)現(xiàn)增刪改查功能【二】
- BootstrapTable與KnockoutJS相結(jié)合實(shí)現(xiàn)增刪改查功能【一】
- Knockout text綁定DOM的使用方法
- Knockout數(shù)組(observable)使用詳解示例
- Knockoutjs快速入門(mén)(經(jīng)典)
- Knockoutjs的環(huán)境搭建教程
- ko knockoutjs動(dòng)態(tài)屬性綁定技巧應(yīng)用
- 用Javascript評(píng)估用戶(hù)輸入密碼的強(qiáng)度(Knockout版)
- 深入淺析knockout源碼分析之訂閱
相關(guān)文章
javascript創(chuàng)建對(duì)象、對(duì)象繼承的實(shí)用方式詳解
JavaScript中的對(duì)象是基于原型的。原型是對(duì)象的基礎(chǔ),它定義并實(shí)現(xiàn)了一個(gè)新對(duì)象所必須包含的成員列表,并被所有同類(lèi)對(duì)象實(shí)例所共享。與其他語(yǔ)言中類(lèi)的概念相比,原型更像是類(lèi)的靜態(tài)成員。本文著重給大家介紹javascript創(chuàng)建對(duì)象、對(duì)象繼承的實(shí)用方式2016-03-03再JavaScript的jQuery庫(kù)中編寫(xiě)動(dòng)畫(huà)效果的指南
這篇文章主要介紹了再JavaScript的jQuery庫(kù)中編寫(xiě)動(dòng)畫(huà)效果的指南,包括一些內(nèi)建的效果方法的使用示例,需要的朋友可以參考下2015-08-08JavaScript語(yǔ)言對(duì)Unicode字符集的支持詳解
這篇文章主要介紹了JavaScript語(yǔ)言對(duì)Unicode字符集的支持詳解,需要的朋友可以參考下2014-12-12一篇文章帶你搞懂JavaScript的變量與數(shù)據(jù)類(lèi)型
這篇文章主要為大家介紹了JavaScript的變量與數(shù)據(jù)類(lèi)型,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01Javascript call和apply區(qū)別及使用方法
JavaScript中通過(guò)call或者apply用來(lái)代替另一個(gè)對(duì)象調(diào)用一個(gè)方法,將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對(duì)象2013-11-11窗口沒(méi)有提示自動(dòng)關(guān)閉的js代碼
窗口沒(méi)有提示自動(dòng)關(guān)閉的js代碼...2007-03-03使用RequireJS優(yōu)化JavaScript引用代碼的方法
這篇文章主要介紹了使用RequireJS優(yōu)化JavaScript引用代碼的方法,RequireJS是一款人氣JS庫(kù),需要的朋友可以參考下2015-07-07