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綁定的作用類(lèi)似。可控制DOM的顯示與隱藏,不一樣的地方是,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
該示例中,通過(guò)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>
備注:使用無(wú)容器的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>
其等效寫(xiě)法為:
<div data-bind="if: !someProperty()">...</div>
有人會(huì)說(shuō)使用if綁定是足夠了。為毛還要ifnot綁定。原因是有很多強(qiáng)迫癥患者喜歡這種ifnot的綁定方式,看起來(lái)更易懂,代碼更整潔。
以上所述是小編給大家介紹的KnockoutJS 3.X API 第四章之?dāng)?shù)據(jù)控制流if綁定和ifnot綁定,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(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)文章
js實(shí)現(xiàn)簡(jiǎn)單的無(wú)縫輪播效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡(jiǎn)單的無(wú)縫輪播效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09
微信小程序基于canvas漸變實(shí)現(xiàn)的彩虹效果示例
這篇文章主要介紹了微信小程序基于canvas漸變實(shí)現(xiàn)的彩虹效果,結(jié)合實(shí)例形式分析了微信小程序線(xiàn)性漸變及圓形漸變的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-05-05
JavaScript實(shí)現(xiàn)九宮格拖拽效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)九宮格拖拽效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
JavaScript 模塊化開(kāi)發(fā)實(shí)例詳解【seajs、requirejs庫(kù)使用】
這篇文章主要介紹了JavaScript 模塊化開(kāi)發(fā),結(jié)合實(shí)例形式詳細(xì)分析了基于seajs、requirejs庫(kù)的JavaScript模塊化使用相關(guān)操作技巧,需要的朋友可以參考下2020-05-05
JS實(shí)現(xiàn)滑動(dòng)菜單效果代碼(包括Tab,選項(xiàng)卡,橫向等效果)
這篇文章主要介紹了JS實(shí)現(xiàn)滑動(dòng)菜單效果代碼,以實(shí)例形式實(shí)現(xiàn)了包括Tab,選項(xiàng)卡,橫向等效果,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-09-09
js實(shí)現(xiàn)橫向伸展開(kāi)的二級(jí)導(dǎo)航菜單代碼
這篇文章主要介紹了js實(shí)現(xiàn)橫向伸展開(kāi)的二級(jí)導(dǎo)航菜單代碼,涉及javascript鼠標(biāo)事件及頁(yè)面元素遍歷的相關(guān)技巧,需要的朋友可以參考下2015-08-08

