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