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標籤,下圖案例是希望可以產生三個頁籤。

AngularJS Part5 Slide1
AngularJS Part5 Slide1

在a標籤中加入ng-click=”tab = 1″、ng-click=”tab = 2″、ng-click=”tab = 3″去設定當使用者按下連結後tab變數會隨著變化,另外為了方便觀察是否成功,在頁面上利用表達式將tab變數顯示出來。

AngularJS Part5 Slide1
AngularJS Part5 Slide2

若一切順利,在我們按下不同的頁籤連結時,畫面上應該會有數字上面的變化。

AngularJS Part5 Slide3
AngularJS Part5 Slide3
AngularJS Part5 Slide4
AngularJS Part5 Slide4

接下來開始製作點選頁籤後的內容頁面,同樣的內容頁面也應該有三個才對,在HTML中產生三個div,其中套用Bootstrape所提供的CSS panel類別,div的內容部分可依照需求置入。

AngularJS Part5 Slide5
AngularJS Part5 Slide5

在div中利用ng-show去判斷tab變數的值來切換顯示。

AngularJS Part5 Slide6
AngularJS Part5 Slide6

完成後,在我們點選不同的連結時,內容的部分也應該會隨著變動。

AngularJS Part5 Slide7
AngularJS Part5 Slide7

接下來我們在section標籤中設定ng-init=”tab=1″的屬性來決定tab變數的初始值。

AngularJS Part5 Slide8
AngularJS Part5 Slide8

接下來在li內新增ng-class的屬性,依tab變數的值來切換active的CSS屬性(該屬性由Bootstrape提供樣式),其中三個連續的等號是判斷該變數與值完全相同的意思。

AngularJS Part5 Slide9
AngularJS Part5 Slide9

這個動作的目的是希望當網友點選之後,可以如下圖所示,清楚的標示目前頁面上所顯示的是第幾個項目。

AngularJS Part5 Slide10
AngularJS Part5 Slide10

到目前為止,大概就完成了我們希望呈現的頁籤效果,大家可以透過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屬性刪除了。

AngularJS Part5 Slide11
AngularJS Part5 Slide11

在ng-click後去執行控制器中的selectTab函數,並且針對該函數帶入不同的值,利用帶入的值來改變tab變數值。

AngularJS Part5 Slide12
AngularJS Part5 Slide12

在ng-click後去執行控制器中的isSelected函數,也帶出不同的值給函數,讓函數可以回傳tab===1或2、3這樣的內容給ng-show使用。

AngularJS Part5 Slide13
AngularJS Part5 Slide13

這樣一來我們邏輯判斷的部分就會和網頁內容有所區隔,大家也可以透過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;
    };
  });
  
})();

You may also like...

51,699 Responses

  1. Sazricw表示:

    Официальное получение диплома техникума с упрощенным обучением в Москве
    korenkyfr.4adm.ru/viewtopic.php?f=4&t=9177

  2. Charlesnak表示:

    1xbet

  3. Great site! I recommend it to everyone!geek bar pulse

  4. Наша компания — это надежный проводник в мире микрофинансирования. Мы предлагаем своим клиентам индивидуальные решения, учитывающие их финансовые возможности и потребности. Независимо от того, нужен ли вам заем на короткий срок или долгосрочный микрозайм, вы всегда можете рассчитывать на нашу помощь.

    микрозайм займы онлайн Казахстан .

  5. Jamescix表示:

    пин ап вход пин ап пин ап вход

  6. Ernestexove表示:

    pin-up: pin-up casino giris – pin up azerbaycan

  7. Ernestexove表示:

    пин ап кз: пин ап казино вход – пин ап кз

  8. humandesignns表示:

    Тема «Четыре типа в Дизайне Человека» важна для понимания не только на теоретическом, но и на практическом уровне. Этот инструмент самопознания помогает каждому из нас осознать свою природу и использовать индивидуальные особенности для улучшения качества жизни. Рассмотрим рационально-практическую сторону каждого из типов, их определения и различия.

    Все о Дизайне Человека – Дизайн Человека

    Первый тип в Дизайне Человека – это Генератор. Он отличаются высокой энергетичностью и способностью легко и эффективно завершать начатые задачи. Главная задача Генератора — найти деятельность, которая приносит радость и удовлетворение. Генератор начинает действовать, когда ощущает внутренний отклик. Когда Генератор действует из отклика, он не только продуктивен, но и создает вокруг себя атмосферу гармонии и успеха.

    Еще один важный тип в Дизайне Человека — Манифестор. Главное предназначение Манифестора — инициировать, начинать и вести за собой. Они не нуждаются в отклике, как Генераторы, и могут сразу принимать решения и действовать. Манифесторы не подчиняются внешним обстоятельствам, а сами создают свою реальность. Их рациональная роль — прокладывать путь для других.

    Третий тип — это Проектор. Проекторы – это люди, которые видят потенциал в других и помогают его раскрыть. Они нуждаются в приглашении, прежде чем начать действовать, и могут эффективно использовать энергию, когда работают с другими людьми. Их сила — в правильном руководстве и управлении чужими ресурсами. Их рациональное предназначение – это оптимизация работы других типов.

    Четвертый тип в Дизайне Человека — это Рефлектор. Этот тип является самым редким и уникальным. Они, как зеркало, отражают общее состояние общества или коллектива. Практическая роль Рефлектора — это оценка и отслеживание состояния окружающих.

    Заключение Каждый из четырех типов в Дизайне Человека имеет свои индивидуальные особенности, которые помогают им максимально эффективно взаимодействовать с миром. Понимание своего типа и его практического предназначения позволяет лучше организовать жизнь, выбрать правильные направления для работы и улучшить качество личных отношений.

  9. Henrynet表示:

    Riobet

  10. Great site! I recommend it to everyone!vapes

  11. humandesignbm表示:

    Тема «Четыре типа в Дизайне Человека» важна для понимания не только на теоретическом, но и на практическом уровне. Этот инструмент самопознания помогает каждому из нас осознать свою природу и использовать индивидуальные особенности для улучшения качества жизни. Рассмотрим рационально-практическую сторону каждого из типов, их определения и различия.

    Все о Дизайне Человека – Дизайн Человека

    Начнем с Генератор. Генераторы отличаются высокой энергетичностью и способностью легко и эффективно завершать начатые задачи. Главная задача Генератора — найти деятельность, которая приносит радость и удовлетворение. Генератор начинает действовать, когда ощущает внутренний отклик. Их индивидуальная особенность заключается в том, что энергия накапливается, только когда они следуют своему отклику.

    Еще один важный тип в Дизайне Человека — Манифестор. Этот тип уникален своей независимостью и способностью инициировать действия. Они не нуждаются в отклике, как Генераторы, и могут сразу принимать решения и действовать. Различие этого типа в том, что они лучше всего проявляют себя, когда свободны от ограничений. Главная их практическая задача — инициировать изменения.

    Не менее значимая категория — Проектор. Проекторы – это люди, которые видят потенциал в других и помогают его раскрыть. Они нуждаются в приглашении, прежде чем начать действовать, и могут эффективно использовать энергию, когда работают с другими людьми. Проекторы отличаются тем, что не обладают собственной энергией, но могут эффективно направлять энергию других. Практическая задача Проектора – это координирование и организация.

    Последний, но не менее важный тип — Рефлектор. Они лучше всего ощущают общие тенденции и могут объективно оценивать ситуацию. Рефлекторы отличаются тем, что их самочувствие напрямую зависит от окружения. Рефлекторы могут стать прекрасными аналитиками, так как они замечают мельчайшие изменения.

    Итак, подведем итог: Каждый из четырех типов в Дизайне Человека имеет свои индивидуальные особенности, которые помогают им максимально эффективно взаимодействовать с миром. Понимание своего типа и его практического предназначения позволяет лучше организовать жизнь, выбрать правильные направления для работы и улучшить качество личных отношений.

  12. DavidAcarf表示:

    https://1winrussia.online/# 1xbet скачать
    пинап

  13. EdwardGuina表示:

    pin up: pin-up casino giris – pin up azerbaycan

  14. humandesignok表示:

    Тема «Четыре типа в Дизайне Человека» важна для понимания не только на теоретическом, но и на практическом уровне. Этот инструмент самопознания помогает каждому из нас осознать свою природу и использовать индивидуальные особенности для улучшения качества жизни. Рассмотрим рационально-практическую сторону каждого из типов, их определения и различия.

    Все о Дизайне Человека – https://human-design-professional.ru

    Начнем с Генератор. Он отличаются высокой энергетичностью и способностью легко и эффективно завершать начатые задачи. Этот тип создан для работы, и его главное стремление — заниматься тем, что приносит удовольствие. Генератор начинает действовать, когда ощущает внутренний отклик. Их индивидуальная особенность заключается в том, что энергия накапливается, только когда они следуют своему отклику.

    Второй тип — это Манифестор. Манифесторы могут начинать новые проекты и вдохновлять других. Они не нуждаются в отклике, как Генераторы, и могут сразу принимать решения и действовать. Индивидуальная особенность Манифестора — это стремление к свободе и независимости. Главная их практическая задача — инициировать изменения.

    Не менее значимая категория — Проектор. Их задача – управлять и направлять энергию других типов. Они нуждаются в приглашении, прежде чем начать действовать, и могут эффективно использовать энергию, когда работают с другими людьми. Проекторы отличаются тем, что не обладают собственной энергией, но могут эффективно направлять энергию других. Проекторы наиболее эффективны, когда действуют в роли консультантов.

    Четвертый тип в Дизайне Человека — это Рефлектор. Рефлекторы — это люди, которые отражают состояние окружающей среды. Индивидуальная особенность Рефлектора заключается в том, что они полностью зависят от окружающего мира и людей. Их рациональная роль заключается в объективной оценке происходящего вокруг.

    Заключение Каждый из четырех типов в Дизайне Человека имеет свои индивидуальные особенности, которые помогают им максимально эффективно взаимодействовать с миром. Понимание своего типа и его практического предназначения позволяет лучше организовать жизнь, выбрать правильные направления для работы и улучшить качество личных отношений.

  15. 오피表示:

    Your insights really add depth to this topic.오피

  16. Howdy, I think your blog could possibly be having browser compatibility issues. When I take a look at your web site in Safari, it looks fine however, if opening in IE, it has some overlapping issues. I merely wanted to provide you with a quick heads up! Apart from that, great website.

  17. Replica Sneakers for Men lg052
    discountshoesmart,replica shoes wu963

  18. Kirk Dwelle表示:

    Encore merci pour ce post et continuez votre excellent travail. ??

  19. Enjoy fast-paced gameplay and big wins at taya365, the ultimate online gaming platform.

  20. Great site! I recommend it to everyone!nicotine free vape

  21. humandesignbv表示:

    myhumandesign human design test free

  22. Reps Shoes表示:

    Replica Sneakers pu776
    Reps Shoes,Replica Sneakers Dirty
    White uk679

  23. KellyKense表示:

    sykaaa

  24. Ward Andrew表示:

    Merci pour cet article super intéressant sur [thème de l’article] ! Je voulais juste ajouter un point qui pourrait intéresser certains d’entre vous. Si vous êtes curieux ou cherchez des informations supplémentaires sur les produits liés à l’amélioration de l’expérience de discuter et de futur rencontre et du bien-être personnel, j’ai récemment découvert un site très complet, [Chemsexworld.com]( Chemsexworld.com .?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。