最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程

 更新時間:2017年05月07日 11:14:04   作者:StrongerSY  
在Angular的原生指令中有這幾個指令用來控制元素的展示與否,ng-show/ng-hide/ng-if和ng-switch。在angular性能優(yōu)化中,我們也常常會用到它。這篇文章主要給大家介紹了在Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程,需要的朋友可以參考。

前言

最近在做一個項目改版,第一次在項目中真正使用Angular,和平時自己寫寫小demo,做做練習(xí)的感覺還是非常不同的,感覺非常的新鮮。有幾個指令是經(jīng)常用到的,這里由于這幾個有點共性,所以一起介紹一下ng-if,ng-show/ng-hide,ng-switch 這幾個指令。下面來看看詳細的介紹:

共性

       1.這里個指令都是Angular框架提供給我們的設(shè)置頁面內(nèi)容顯示和隱藏的方法,使用起來非常方便,尤其是做業(yè)務(wù)邏輯。

       2.都是通過一個表達式的值來實現(xiàn)切換顯示的,只不過 ng-switch 可以是其他值,ng-if ng-show 就必須是 boolen了。

       3.我在使用過程中發(fā)現(xiàn)一個小技巧,我們通過表達式設(shè)置 ng-if 或者 ng-show 直接在頁面中定義一個表達式,這個時候它的值其實是undefined,由于 !== true 所以這部分默認也是隱藏。

那么既然是不同指令,就各自有專攻,那我們就來看看他們分別都有什么果實能力。。。(不看海賊的可以無視哈~~)

ng-show/ng-hide

在用原生js 或者 jquery的時候,我們一般都可以定義一個類,通過添加和刪除這個類來實現(xiàn)元素的顯示和隱藏切換。其實這部分從網(wǎng)上參考資料來看,Angular也是這樣實現(xiàn)的,根據(jù)表達式正確與否,動態(tài)添加或者刪除 ng-hide 這個Angualr預(yù)先定義好的class。調(diào)用方式具體如下:

可以是設(shè)置一個變量

<div ng-show='show'></div>

也可以是直接使用 true / false

<div ng-show='true'></div>

對于變量,我們在js 中直接設(shè)置這個值就可以。

這個指令的特性是,即使我們暫時隱藏這部分內(nèi)容,它也會被dom 渲染。

ng-if

使用方式也是設(shè)置一個表達式:

可以是設(shè)置一個變量

<div ng-if='more'></div>

也可以是直接使用 true / false

<div ng-if='true'></div>

對于變量,我們在js 中直接設(shè)置這個值就可以。

這是一個能幫我們節(jié)省效率的指令,如果表達式值 === false , 則這部分不會在dom中渲染,或者原有的內(nèi)容會被從dom中刪除。所以如果有一部分內(nèi)容,不需要一開始就顯示,我們可以先用ng-if 讓它隱藏。例如一個顯示更多的下拉按鈕,剛開始不顯示的部分,可以ng-if 來設(shè)置,等我們點擊了更多按鈕,再設(shè)置ng-if = true 既可。這樣子減少了頁面渲染事件,提高了效率呢。

還有一個特性,ng-if 或創(chuàng)建自己的 scope,它通過原型繼承父級的scope。一個典型的例子來自于參考資源1。

還有一個小坑,$scope上面我可以直接給一個屬性賦值如:

$scope.showpage = 'abut'

但是如果直接賦值一個對象,對不起,需要先聲明,再給對象添加屬性

$scope.data = {};
$scope.data.showpage = 'about';

ng-swith

使用方式比前前兩個復(fù)雜一點,不過也非常直觀,類似原生js 中的switch 函數(shù):

在外層父級元素設(shè)置 ng-switch 為一個表達式A ,那么他的子元素相當于幾個不同的選項,表達式A 對應(yīng)哪個子元素的 ng-switch-with 值,就顯示那部分。

<div ng-switch='showpart'>
 <div ng-switch-default></div>
 <div ng-switch-with='home'></div>
 <div ng-switch-with='blog'></div>
 <div ng-switch-with='about'></div>
 <div ng-switch-with='contact'></div>
</div>

這也是一個能幫我們節(jié)省效率的指令。和ng-if 一樣,一開始如果不等于父級的 ng-switch 表達式的值,則不會在頁面渲染的,而且我們也可以通過 ng-switch-default 來設(shè)置默認的顯示部分。比如以往常見的 Tab 選項卡,用這個指令實現(xiàn)起來就非常的容易。

這里有一點疑問,因為我在項目中,做的單頁面應(yīng)用,所有不同部分都在一個頁面里面。那么我經(jīng)常需要根據(jù)不同的ajax返回值,顯示不同的部分,(特殊原因不能使用路由),所以我這里就是用的 ng-switch 指令,根據(jù)不同返回值,顯示不同部分。雖然也能實現(xiàn)按需顯示,但看到有文章說這樣使用 ng-switch 并不是很妥當,路過的朋友,有了解的可以指點我一下!我在這先謝過了~~

后面我會繼續(xù)分享Angular在項目開發(fā)中的經(jīng)驗,以及遇到的坑!

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學(xué)習(xí)或者使用Angular.js能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 詳解AngularJS中的表格使用

    詳解AngularJS中的表格使用

    這篇文章主要介紹了詳解AngularJS中的表格使用,作為熱門的JavaScript框架,AngularJS中提供的表格功能十分強大,需要的朋友可以參考下
    2015-06-06
  • angularJS利用ng-repeat遍歷二維數(shù)組的實例代碼

    angularJS利用ng-repeat遍歷二維數(shù)組的實例代碼

    本篇文章主要介紹了angularJS利用ng-repeat遍歷二維數(shù)組的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • JavaScript框架Angular和React深度對比

    JavaScript框架Angular和React深度對比

    這篇文章主要介紹了JS框架中Angular和React不同和差異,以及兩個框架的深度對比介紹。
    2017-11-11
  • 對angularJs中2種自定義服務(wù)的實例講解

    對angularJs中2種自定義服務(wù)的實例講解

    今天小編就為大家分享一篇對angularJs中2種自定義服務(wù)的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 使用AngularJS和PHP的Laravel實現(xiàn)單頁評論的方法

    使用AngularJS和PHP的Laravel實現(xiàn)單頁評論的方法

    這篇文章主要介紹了使用AngularJS和PHP的Laravel實現(xiàn)單頁評論的方法,本文的示例是前端JavaScript和后端PHP聯(lián)合編程的典范,需要的朋友可以參考下
    2015-06-06
  • 詳解Angular2中Input和Output用法及示例

    詳解Angular2中Input和Output用法及示例

    這篇文章主要介紹了詳解Angular2中Input和Output用法及示例,對于angular2中的Input和Output可以和AngularJS中指令作類比,有興趣的可以了解一下
    2017-05-05
  • 關(guān)于angular瀏覽器兼容性問題的解決方案

    關(guān)于angular瀏覽器兼容性問題的解決方案

    這篇文章主要給大家介紹了關(guān)于angular瀏覽器兼容性問題的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者使用angular具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Angular模板表單校驗方法詳解

    Angular模板表單校驗方法詳解

    這篇文章主要為大家詳細介紹了Angular模板表單校驗方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • angular雙向綁定模擬探索

    angular雙向綁定模擬探索

    這篇文章主要和大家一起探索模擬angular的雙向綁定,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 詳解Angular 4.x 動態(tài)創(chuàng)建組件

    詳解Angular 4.x 動態(tài)創(chuàng)建組件

    本篇文章主要介紹了詳解Angular 4.x 動態(tài)創(chuàng)建組件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04

最新評論

广灵县| 买车| 仁怀市| 饶阳县| 卢湾区| 五大连池市| 常宁市| 呼图壁县| 焦作市| 辽中县| 南皮县| 铁力市| 靖安县| 张家界市| 仙桃市| 随州市| 朝阳市| 包头市| 平谷区| 乐业县| 新沂市| 万荣县| 文山县| 靖安县| 广德县| 漾濞| 鄄城县| 巴林左旗| 靖江市| 鹤庆县| 黑龙江省| 堆龙德庆县| 青铜峡市| 军事| 兴城市| 邹平县| 株洲县| 东兴市| 民丰县| 嵩明县| 达拉特旗|