[AngularJS]11. GalleryController
11 angularjs
2023-09-14 08:59:22 时间
Now that you're such a whiz with tabbed tab, can you apply what you've learned to our image gallery, too? Don't worry, we'll start slow… And there's a lot more in common than you might think!
1. Initialize a current
property of GalleryController
with a value of 0
.
app.controller('GalleryController', function(){ });
2. Initialize a current
property of GalleryController
with a value of 0
.
app.controller('GalleryController', function(){ this.current = 0; });
3. Add a method to GalleryController
called setCurrent
that accepts a value and assigns it to current
. If no value is passed in, set current
to0
.
this.setCurrent = function(set_current){ this.current = set_current || 0; };
<!DOCTYPE html> <html ng-app="gemStore"> <head> <base href='http://courseware.codeschool.com/shaping-up-with-angular-js/' /> <link rel="stylesheet" type="text/css" href="bootstrap.min.css" /> <script type="text/javascript" src="angular.min.js"></script> <script type="text/javascript" src="app.js"></script> </head> <body class="list-group" ng-controller="StoreController as store"> <!-- Store Header --> <header> <h1 class="text-center">Flatlander Crafted Gems</h1> <h2 class="text-center">– an Angular store –</h2> </header> <div class="list-group-item" ng-repeat="product in store.products"> <h3> {{product.name}} <em class="pull-right">{{product.price | currency}}</em> </h3> <!-- Image Gallery --> <section ng-show="product.images.length"> <img ng-src="{{product.images[0]}}" /> <ul class="list-inline thumbs"> <li class="thumbnail" ng-repeat="image in product.images"> <img ng-src="{{image}}" /> </li> </ul> </section> <!-- Product Tabs --> <section class="tab" ng-controller="TabController as tab"> <ul class="nav nav-pills"> <li ng-class="{ active: tab.isSet(1) }"> <a href ng-click="tab.setTab(1)">Description</a></li> <li ng-class="{ active: tab.isSet(2) }"> <a href ng-click="tab.setTab(2)">Specs</a></li> <li ng-class="{ active: tab.isSet(3) }"> <a href ng-click="tab.setTab(3)">Reviews</a></li> </ul> <div ng-show="tab.isSet(1)"> <h4>Description</h4> <blockquote>{{product.description}}</blockquote> </div> <div ng-show="tab.isSet(2)"> <h4>Specs</h4> <blockquote>Shine: {{product.shine}}</blockquote> </div> <div ng-show="tab.isSet(3)"> <h4>Reviews</h4> </div> </section> </div> </body> </html>
(function() { var app = angular.module('gemStore', []); app.controller('GalleryController', function(){ this.current = 0; this.setCurrent = function(set_current){ this.current = set_current || 0; }; }); app.controller('StoreController', function(){ this.products = gems; }); app.controller('TabController', function(){ this.tab = 1; this.setTab = function(newValue){ this.tab = newValue; }; this.isSet = function(tabName){ return this.tab === tabName; }; }); var gems = [ { name: 'Azurite', description: "Some gems have hidden qualities beyond their luster, beyond their shine... Azurite is one of those gems.", shine: 8, price: 110.50, rarity: 7, color: '#CCC', faces: 14, images: [ "images/gem-02.gif", "images/gem-05.gif", "images/gem-09.gif" ], reviews: [{ stars: 5, body: "I love this gem!", author: "joe@example.org", createdOn: 1397490980837 }, { stars: 1, body: "This gem sucks.", author: "tim@example.org", createdOn: 1397490980837 }] }, { name: 'Bloodstone', description: "Origin of the Bloodstone is unknown, hence its low value. It has a very high shine and 12 sides, however.", shine: 9, price: 22.90, rarity: 6, color: '#EEE', faces: 12, images: [ "images/gem-01.gif", "images/gem-03.gif", "images/gem-04.gif", ], reviews: [{ stars: 3, body: "I think this gem was just OK, could honestly use more shine, IMO.", author: "JimmyDean@example.org", createdOn: 1397490980837 }, { stars: 4, body: "Any gem with 12 faces is for me!", author: "gemsRock@example.org", createdOn: 1397490980837 }] }, { name: 'Zircon', description: "Zircon is our most coveted and sought after gem. You will pay much to be the proud owner of this gorgeous and high shine gem.", shine: 70, price: 1100, rarity: 2, color: '#000', faces: 6, images: [ "images/gem-06.gif", "images/gem-07.gif", "images/gem-09.gif" ], reviews: [{ stars: 1, body: "This gem is WAY too expensive for its rarity value.", author: "turtleguyy@example.org", createdOn: 1397490980837 }, { stars: 1, body: "BBW: High Shine != High Quality.", author: "LouisW407@example.org", createdOn: 1397490980837 }, { stars: 1, body: "Don't waste your rubles!", author: "nat@example.org", createdOn: 1397490980837 }] } ]; })();
相关文章
- HP Loadrunner 11 安装+激活成功教程+汉化+乱码
- Windows 11 新材质 Mica Alt 效果展示 (转载非原创)
- 免费领取 | 11篇 3DV2022论文
- 【C++修炼之路】26.C++11(语法糖)
- MacOS 11-13.x 11.7.6/12.6.5/13.3.1通用版
- C++11 Lambda表达式(匿名函数)详解
- 外媒:Windows 11不大可能成为又一个Windows 8
- Windows 11正在将Skype从用户视野中移出
- 英特尔竟然忘记为第11代酷睿系列处理器发布测试完毕后的图形驱动程序
- 英特尔推出第11代10纳米酷睿H系列处理器 有望为游戏本性能提高19%左右
- 微软:会为Windows 11带来LTSC版本
- Linux 2.6.11:更新更快、更安全的操作系统(linux2.6.11)