KnockoutJS 3.X API 第四章之?dāng)?shù)據(jù)控制流if綁定和ifnot綁定
if綁定目的
if綁定一般是格式是data-bind=if:attribute,if后所跟屬性或表達(dá)式的值應(yīng)為bool值(也可以是非bool值,當(dāng)非空字符串時則為真),if綁定的作用與visible綁定的作用類似。可控制DOM的顯示與隱藏,不一樣的地方是,if綁定是物理刪除或添加DOM元素。
示例1
該例展示IF綁定的動態(tài)刪除添加DOM:
Display message
UI源碼:
<label><input type="checkbox" data-bind="checked: displayMessage" /> Display message</label> <div data-bind="if: displayMessage">Here is a message. Astonishing.</div>
視圖模型源碼:
ko.applyBindings({
displayMessage: ko.observable(false)
});
示例2
該示例中,通過foreach綁定循環(huán)planets監(jiān)控屬性數(shù)組,其中name為Mercury的項(xiàng)目中capital為null,則循環(huán)中該項(xiàng)目只顯示其name.
<ul data-bind="foreach: planets">
<li>
Planet: <b data-bind="text: name"> </b>
<div data-bind="if: capital">
Capital: <b data-bind="text: capital.cityName"> </b>
</div>
</li>
</ul>
<script>
ko.applyBindings({
planets: [
{ name: 'Mercury', capital: null },
{ name: 'Earth', capital: { cityName: 'Barnsley' } }
]
});
</script>
備注:使用無容器的if綁定(if虛擬綁定)
像之前的虛擬綁定一樣,同樣使用<!-- ko -->和<!-- /ko -->進(jìn)行。虛擬綁定適用于不改變UI元素的情況。
<ul> <li>This item always appears</li> <!-- ko if: someExpressionGoesHere --> <li>I want to make this item present/absent dynamically</li> <!-- /ko --> </ul>
ifnot綁定
ifnot綁定是if綁定的逆向表達(dá),格式與if綁定一樣,只是判斷結(jié)果與if整好相反。就像等于和不等于一樣。例如:
<div data-bind="ifnot: someProperty">...</div>
其等效寫法為:
<div data-bind="if: !someProperty()">...</div>
有人會說使用if綁定是足夠了。為毛還要ifnot綁定。原因是有很多強(qiáng)迫癥患者喜歡這種ifnot的綁定方式,看起來更易懂,代碼更整潔。
以上所述是小編給大家介紹的KnockoutJS 3.X API 第四章之?dāng)?shù)據(jù)控制流if綁定和ifnot綁定,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- KnockoutJS 3.X API 第四章之?dāng)?shù)據(jù)控制流foreach綁定
- KnockoutJS 3.X API 第四章之?dāng)?shù)據(jù)控制流with綁定
- KnockoutJS 3.X API 第四章之?dāng)?shù)據(jù)控制流component綁定
- KnockoutJS 3.X API 第四章之click綁定
- KnockoutJS 3.X API 第四章之事件event綁定
- KnockoutJS 3.X API 第四章之表單submit、enable、disable綁定
- KnockoutJS 3.X API 第四章之表單value綁定
- BootstrapTable與KnockoutJS相結(jié)合實(shí)現(xiàn)增刪改查功能【二】
- BootstrapTable與KnockoutJS相結(jié)合實(shí)現(xiàn)增刪改查功能【一】
- KnockoutJS 3.X API 第四章之表單textInput、hasFocus、checked綁定
相關(guān)文章
layui禁用側(cè)邊導(dǎo)航欄點(diǎn)擊事件的解決方法
今天小編就為大家分享一篇layui禁用側(cè)邊導(dǎo)航欄點(diǎn)擊事件的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
js鼠標(biāo)點(diǎn)擊圖片實(shí)現(xiàn)隨機(jī)變換圖片的方法
這篇文章主要介紹了js鼠標(biāo)點(diǎn)擊圖片實(shí)現(xiàn)隨機(jī)變換圖片的方法,涉及鼠標(biāo)事件與隨機(jī)函數(shù)的使用技巧,需要的朋友可以參考下2015-02-02
js showModalDialog參數(shù)的使用詳解
本篇文章主要是對js中showModalDialog參數(shù)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01
原生javascript實(shí)現(xiàn)獲取指定元素下所有后代元素的方法
這篇文章主要介紹了原生javascript實(shí)現(xiàn)獲取指定元素下所有后代元素的方法,在進(jìn)行web程序設(shè)計(jì)時是非常實(shí)用的技巧,需要的朋友可以參考下2014-10-10
微信小程序之自定義組件的實(shí)現(xiàn)代碼(附源碼)
最近在項(xiàng)目開發(fā)中,遇到好多雷同的頁面樣式,就想著可以將常用的功能模塊封裝成組件,方便在項(xiàng)目中使用和修改。這篇文章主要介紹了微信小程序之自定義組件的實(shí)現(xiàn)代碼(附源碼),需要的朋友可以參考下2018-08-08
微信公眾平臺開發(fā)教程(六)獲取個性二維碼的實(shí)例
二維碼的用處有很多,本篇文章主要介紹了微信公眾平臺開發(fā)教程(六)獲取個性二維碼的實(shí)例,有興趣的可以了解一下。2016-12-12
基于Flowplayer打造一款免費(fèi)的WEB視頻播放器附源碼
Flowplayer是一款免費(fèi)的WEB視頻播放器。它支持播放flv、swf等流媒體和圖片文件,能夠非常流暢的播放視頻文件,支持自定義配置和擴(kuò)展。下面本篇文章給大家介紹基于Flowplayer打造一款免費(fèi)的WEB視頻播放器,需要的朋友可以參考下2015-09-09
JS中將圖片base64轉(zhuǎn)file文件的兩種方式
這篇文章主要介紹了JS中圖片base64轉(zhuǎn)file文件的兩種方式,實(shí)現(xiàn)把圖片的base64編碼轉(zhuǎn)成file文件的功能,然后再上傳至服務(wù)器,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02
關(guān)于JavaScript中name的意義沖突示例介紹
這篇文章主要介紹了關(guān)于JavaScript中name的意義沖突,需要的朋友可以參考下2014-05-05

