AngularJS – Tab 介紹篇
為了方便文章閱讀,本篇將Tab翻譯成頁籤
這個案例的複雜度會比較前面高一些,因為它不僅僅是使用我們一直提到的AngularJS,為了要製作頁面上面的一些互動效果,還加入了Bootstrape這個通常被用來當RWD的框架,不過也僅僅是套用了幾個類別,所以大家也不用太擔心,接下來我們先看一下這個案例最後希望要達成的效果頁面。
在看過了目標頁面後,我們先來了解一下需要怎麼樣架構我們的HTML,首先是CSS和Javascript的引入,分別是AngularJS、jQuery、Bootstrap CSS以及Javascript:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script> <script src="https://code.jquery.com/jquery.min.js"></script> <link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
在HTML文件中,必須有項目清單標籤ul、li,而在ul標籤中需套用nav nav-pills這兩個css類別,這兩個類別是由Bootstrape的css所提供的,li標籤是包覆著超連結的a標籤,下圖案例是希望可以產生三個頁籤。
在a標籤中加入ng-click=”tab = 1″、ng-click=”tab = 2″、ng-click=”tab = 3″去設定當使用者按下連結後tab變數會隨著變化,另外為了方便觀察是否成功,在頁面上利用表達式將tab變數顯示出來。
若一切順利,在我們按下不同的頁籤連結時,畫面上應該會有數字上面的變化。
接下來開始製作點選頁籤後的內容頁面,同樣的內容頁面也應該有三個才對,在HTML中產生三個div,其中套用Bootstrape所提供的CSS panel類別,div的內容部分可依照需求置入。
在div中利用ng-show去判斷tab變數的值來切換顯示。
完成後,在我們點選不同的連結時,內容的部分也應該會隨著變動。
接下來我們在section標籤中設定ng-init=”tab=1″的屬性來決定tab變數的初始值。
接下來在li內新增ng-class的屬性,依tab變數的值來切換active的CSS屬性(該屬性由Bootstrape提供樣式),其中三個連續的等號是判斷該變數與值完全相同的意思。
這個動作的目的是希望當網友點選之後,可以如下圖所示,清楚的標示目前頁面上所顯示的是第幾個項目。
到目前為止,大概就完成了我們希望呈現的頁籤效果,大家可以透過JS Bin來測試看看到目前為止的程式碼。
<!DOCTYPE html> <html ng-app> <head> <meta name="description" content="AngularJS Tabs Example 1"> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script> <script src="//code.jquery.com/jquery.min.js"></script> <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> <meta charset="utf-8"> <title>AngularJS Tabs Example 1</title> </head> <body> <section ng-init="tab=1"> <ul class="nav nav-pills"> <li ng-class="{ active: tab===1 }"> <a href="" ng-click="tab=1">滑鼠墊</a> </li> <li ng-class="{ active: tab===2 }"> <a href="" ng-click="tab=2">馬克杯</a> </li> <li ng-class="{ active: tab===3 }"> <a href="" ng-click="tab=3">杯墊</a> </li> </ul> <div class="panel" ng-show="tab===1"> <h4>馬老師雲端研究室 滑鼠墊</h4> <p>產品介紹...</p> </div> <div class="panel" ng-show="tab===2"> <h4>馬老師雲端研究室 馬克杯</h4> <p>產品介紹...</p> </div> <div class="panel" ng-show="tab===3"> <h4>馬老師雲端研究室 杯墊</h4> <p>產品介紹...</p> </div> </section> </body> </html>
在看完了上面的案例之後,我們可以觀察到程式邏輯判斷的部分都是直接撰寫在HTML頁面上,那如果我們要把邏輯判斷的部分從HTML拆開寫到Javascript檔又應該要如何處理呢?首先,不用說的當然是必須要有應用程式的建立以及控制器囉!下圖中我們開始新增控制器,並且在section標籤中,輸入ng-controller=”panelController as panel”的屬性,相信在看了前幾篇教學的同學們對於這樣的項目是再熟悉不過了!接下來在控制器中,決定tab變數的初始值,就可以把原來的ng-init屬性刪除了。
在ng-click後去執行控制器中的selectTab函數,並且針對該函數帶入不同的值,利用帶入的值來改變tab變數值。
在ng-click後去執行控制器中的isSelected函數,也帶出不同的值給函數,讓函數可以回傳tab===1或2、3這樣的內容給ng-show使用。
這樣一來我們邏輯判斷的部分就會和網頁內容有所區隔,大家也可以透過JS Bin來測試這樣的程式結構。
<!DOCTYPE html> <html ng-app="store"> <head> <meta name="description" content="AngularJS Tabs Example 2"> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script> <script src="//code.jquery.com/jquery.min.js"></script> <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> <meta charset="utf-8"> <title>AngularJS Tabs Example 2</title> </head> <body> <section ng-controller="PanelController as panel"> <ul class="nav nav-pills"> <li ng-class="{ active: panel.isSelected(1) }"> <a href="" ng-click="panel.selectTab(1)">滑鼠墊</a> </li> <li ng-class="{ active: panel.isSelected(2) }"> <a href="" ng-click="panel.selectTab(2)">馬克杯</a> </li> <li ng-class="{ active: panel.isSelected(3) }"> <a href="" ng-click="panel.selectTab(3)">杯墊</a> </li> </ul> <div class="panel" ng-show="panel.isSelected(1)"> <h4>馬老師雲端研究室 滑鼠墊</h4> <p>產品介紹...</p> </div> <div class="panel" ng-show="panel.isSelected(2)"> <h4>馬老師雲端研究室 馬克杯</h4> <p>產品介紹...</p> </div> <div class="panel" ng-show="panel.isSelected(3)"> <h4>馬老師雲端研究室 杯墊</h4> <p>產品介紹...</p> </div> </section> </body> </html>
(function(){ var app = angular.module('store', []); app.controller('PanelController', function(){ this.tab = 1; this.selectTab = function(setTab){ this.tab = setTab; }; this.isSelected = function(checkTab){ return this.tab === checkTab; }; }); })();
http://casinvietnam.shop/# casino online uy tin
http://casinvietnam.com/# web c? b?c online uy tin
game c? b?c online uy tin casino tr?c tuy?n vi?t nam casino tr?c tuy?n vi?t nam
casino tr?c tuy?n vi?t nam: choi casino tr?c tuy?n trên di?n tho?i – casino tr?c tuy?n vi?t nam
http://casinvietnam.shop/# web c? b?c online uy tin
casino tr?c tuy?n vi?t nam casino tr?c tuy?n casino online uy tin
Привет всем!
Было ли у вас опыт написания дипломной работы в крайне сжатые сроки? Это действительно требует огромной ответственности и трудоемкости, однако важно сохранять упорство и продолжать активно участвовать в учебном процессе, как я это делаю.
Для тех, кто умеет эффективно искать и анализировать информацию в интернете, это действительно помогает в процессе согласования и написания дипломной работы. Больше не нужно тратить время на посещение библиотек или организацию встреч с научным руководителем. Здесь, на этом ресурсе, предоставлены надежные данные для заказа и написания дипломных и курсовых работ с гарантией качества и доставкой по всей России. Можете ознакомиться с предложениями по ссылке , это проверенный источник!
https://berry.work/read-blog/11595
купить диплом цена
купить диплом университета
купить диплом ссср
купить диплом Вуза
купить диплом
Желаю каждому отличных оценок!
https://casinvietnam.com/# casino tr?c tuy?n vi?t nam
synthroid doses
Приветики!
Были ли у вас случаи, когда приходилось писать дипломную работу в крайне ограниченные сроки? Это действительно требует большой ответственности и трудоемкости, но важно не отступать и продолжать активно участвовать в учебном процессе, как я.
Для тех, кто умеет эффективно находить и использовать информацию в сети, это действительно помогает в процессе согласования и написания дипломной работы. Больше не нужно тратить время на посещение библиотек или организацию встреч с научным руководителем. Здесь, на этом ресурсе, предоставлены надежные данные для заказа и написания дипломных и курсовых работ с гарантией качества и доставкой по всей России. Можете ознакомиться с предложениями тут , это проверенный источник!
http://catalogue.bbok.ru/viewtopic.php?id=3273#p25298
купить диплом Гознак
купить диплом магистра
купить диплом о среднем специальном
купить диплом техникума
купить диплом о высшем образовании
Желаю любому отличных отметок!
no prescription needed canadian pharmacy: canada online pharmacy no prescription – rx pharmacy coupons
http://edpill.top/# cheapest online ed treatment
https://medicationnoprescription.pro/# non prescription canadian pharmacy
canadian pharmacy without prescription no prescription needed pharmacy cheapest pharmacy for prescriptions without insurance
pharmacy coupons: canadian pharmacy discount code – reputable online pharmacy no prescription
reputable online pharmacy no prescription cheapest pharmacy to get prescriptions filled overseas pharmacy no prescription
Доброго всем дня!
Было ли у вас опыт написания дипломной работы в крайне сжатые сроки? Это действительно требует огромной ответственности и трудоемкости, однако важно сохранять упорство и продолжать активно участвовать в учебном процессе, как я это делаю.
Для тех, кто умеет эффективно искать и анализировать информацию в интернете, это действительно помогает в процессе согласования и написания дипломной работы. Больше не нужно тратить время на посещение библиотек или организацию встреч с научным руководителем. Здесь, на этом ресурсе, предоставлены надежные данные для заказа и написания дипломных и курсовых работ с гарантией качества и доставкой по всей России. Можете ознакомиться с предложениями по ссылке , это проверенный источник!
https://centro.renasiendo.art/question/%d0%ba%d1%83%d0%bf%d0%b8%d1%82%d1%8c-%d0%b4%d0%b8%d0%bf%d0%bb%d0%be%d0%bc-%d0%be-%d0%b2%d1%8b%d1%81%d1%88%d0%b5%d0%bc-%d0%be%d0%b1%d1%80%d0%b0%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b8-%d0%bf%d0%be-3/
купить диплом о среднем специальном
купить диплом
купить диплом специалиста
купить диплом института
купить диплом Вуза
Желаю каждому пятерошных) отметок!
best no prescription pharmacy: online pharmacy prescription – pharmacy no prescription required
https://medicationnoprescription.pro/# mail order prescriptions from canada
https://onlinepharmacyworld.shop/# offshore pharmacy no prescription
http://medicationnoprescription.pro/# meds online without prescription
Доброго всем дня!
Было ли у вас опыт написания дипломной работы в крайне сжатые сроки? Это действительно требует огромной ответственности и трудоемкости, однако важно сохранять упорство и продолжать активно участвовать в учебном процессе, как я это делаю.
Для тех, кто умеет эффективно искать и анализировать информацию в интернете, это действительно помогает в процессе согласования и написания дипломной работы. Больше не нужно тратить время на посещение библиотек или организацию встреч с научным руководителем. Здесь, на этом ресурсе, предоставлены надежные данные для заказа и написания дипломных и курсовых работ с гарантией качества и доставкой по всей России. Можете ознакомиться с предложениями по ссылке , это проверенный источник!
http://rossensor.ru/forum/?PAGE_NAME=profile_view&UID=42608
купить диплом в Москве
купить диплом института
купить диплом нового образца
купить аттестат школы
купить диплом о среднем образовании
Желаю любому нужных оценок!
no prescription needed pharmacy: canada prescriptions by mail – non prescription pharmacy
canadian pharmacy world coupon canada drugs coupon code best canadian pharmacy no prescription
best online ed treatment: generic ed meds online – cheap ed meds online
https://onlinepharmacyworld.shop/# canadian pharmacy no prescription
pharmacy coupons canadian pharmacy no prescription needed no prescription pharmacy paypal
http://edpill.top/# erectile dysfunction medication online
https://onlinepharmacyworld.shop/# no prescription needed canadian pharmacy
http://edpill.top/# online ed medication