KnockoutJS 3.X API 第四章之?dāng)?shù)據(jù)控制流if綁定和ifnot綁定
if綁定目的
if綁定一般是格式是data-bind=if:attribute,if后所跟屬性或表達(dá)式的值應(yīng)為bool值(也可以是非bool值,當(dāng)非空字符串時(shí)則為真),if綁定的作用與visible綁定的作用類似??煽刂艱OM的顯示與隱藏,不一樣的地方是,if綁定是物理刪除或添加DOM元素。
示例1
該例展示IF綁定的動(dòng)態(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>
有人會(huì)說使用if綁定是足夠了。為毛還要ifnot綁定。原因是有很多強(qiáng)迫癥患者喜歡這種ifnot的綁定方式,看起來更易懂,代碼更整潔。
以上所述是小編給大家介紹的KnockoutJS 3.X API 第四章之?dāng)?shù)據(jù)控制流if綁定和ifnot綁定,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(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)擊事件的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09js鼠標(biāo)點(diǎn)擊圖片實(shí)現(xiàn)隨機(jī)變換圖片的方法
這篇文章主要介紹了js鼠標(biāo)點(diǎn)擊圖片實(shí)現(xiàn)隨機(jī)變換圖片的方法,涉及鼠標(biāo)事件與隨機(jī)函數(shù)的使用技巧,需要的朋友可以參考下2015-02-02js showModalDialog參數(shù)的使用詳解
本篇文章主要是對(duì)js中showModalDialog參數(shù)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01原生javascript實(shí)現(xiàn)獲取指定元素下所有后代元素的方法
這篇文章主要介紹了原生javascript實(shí)現(xiàn)獲取指定元素下所有后代元素的方法,在進(jìn)行web程序設(shè)計(jì)時(shí)是非常實(shí)用的技巧,需要的朋友可以參考下2014-10-10微信小程序之自定義組件的實(shí)現(xiàn)代碼(附源碼)
最近在項(xiàng)目開發(fā)中,遇到好多雷同的頁面樣式,就想著可以將常用的功能模塊封裝成組件,方便在項(xiàng)目中使用和修改。這篇文章主要介紹了微信小程序之自定義組件的實(shí)現(xiàn)代碼(附源碼),需要的朋友可以參考下2018-08-08微信公眾平臺(tái)開發(fā)教程(六)獲取個(gè)性二維碼的實(shí)例
二維碼的用處有很多,本篇文章主要介紹了微信公眾平臺(tái)開發(fā)教程(六)獲取個(gè)性二維碼的實(shí)例,有興趣的可以了解一下。2016-12-12基于Flowplayer打造一款免費(fèi)的WEB視頻播放器附源碼
Flowplayer是一款免費(fèi)的WEB視頻播放器。它支持播放flv、swf等流媒體和圖片文件,能夠非常流暢的播放視頻文件,支持自定義配置和擴(kuò)展。下面本篇文章給大家介紹基于Flowplayer打造一款免費(fèi)的WEB視頻播放器,需要的朋友可以參考下2015-09-09JS中將圖片base64轉(zhuǎn)file文件的兩種方式
這篇文章主要介紹了JS中圖片base64轉(zhuǎn)file文件的兩種方式,實(shí)現(xiàn)把圖片的base64編碼轉(zhuǎn)成file文件的功能,然后再上傳至服務(wù)器,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02關(guān)于JavaScript中name的意義沖突示例介紹
這篇文章主要介紹了關(guān)于JavaScript中name的意義沖突,需要的朋友可以參考下2014-05-05JavaScript實(shí)現(xiàn)星級(jí)評(píng)分
本文主要分享了JavaScript實(shí)現(xiàn)星級(jí)評(píng)分的實(shí)例代碼,具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01