国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

AngularJS 入門教程之事件處理器詳解

2019-11-20 09:12:04
字體:
來源:轉載
供稿:網友

在這一步,你會在手機詳細信息頁面讓手機圖片可以點擊。

請重置工作目錄:

git checkout -f step-10

手機詳細信息視圖展示了一幅當前手機的大號圖片,以及幾個小一點的縮略圖。如果用戶點擊縮略圖就能把那張大的替換成自己那就更好了。現在我們來看看如何用AngularJS來實現它。

步驟9和步驟10之間最重要的不同在下面列出。你可以在GitHub里看到完整的差別。

控制器

app/js/controllers.js

...function PhoneDetailCtrl($scope, $routeParams, $http) { $http.get('phones/' + $routeParams.phoneId + '.json').success(function(data) { $scope.phone = data; $scope.mainImageUrl = data.images[0]; }); $scope.setImage = function(imageUrl) { $scope.mainImageUrl = imageUrl; }}//PhoneDetailCtrl.$inject = ['$scope', '$routeParams', '$http'];

在PhoneDetailCtrl控制器中,我們創建了mainImageUrl模型屬性,并且把它的默認值設為第一個手機圖片的URL。

模板

app/partials/phone-detail.html

<img ng-src="{{mainImageUrl}}" class="phone">...<ul class="phone-thumbs"> <li ng-repeat="img in phone.images"> <img ng-src="{{img}}" ng-click="setImage(img)"> </li></ul>...

我們把大圖片的ngSrc指令綁定到mainImageUrl屬性上。

同時我們注冊一個ngClick處理器到縮略圖上。當一個用戶點擊縮略圖的任意一個時,這個處理器會使用setImage事件處理函數來把mainImageUrl屬性設置成選定縮略圖的URL。

測試

為了驗證這個新特性,我們添加了兩個端到端測試。一個驗證主圖片被默認設置成第一個手機圖片。第二個測試點擊幾個縮略圖并且驗證主圖片隨之合理的變化。

test/e2e/scenarios.js

... describe('Phone detail view', function() {... it('should display the first phone image as the main phone image', function() {  expect(element('img.phone').attr('src')).toBe('img/phones/nexus-s.0.jpg'); }); it('should swap main image if a thumbnail image is clicked on', function() {  element('.phone-thumbs li:nth-child(3) img').click();  expect(element('img.phone').attr('src')).toBe('img/phones/nexus-s.2.jpg');  element('.phone-thumbs li:nth-child(1) img').click();  expect(element('img.phone').attr('src')).toBe('img/phones/nexus-s.0.jpg'); }); });});

你現在可以刷新你的瀏覽器,然后重新跑一遍端到端測試,或者你可以在AngularJS的服務器上運行一下。

練習

為PhoneDetailCtrl添加一個新的控制器方法:

 $scope.hello = function(name) {  alert('Hello ' + (name || 'world') + '!'); }

并且添加:

 <button ng-click="hello('Elmo')">Hello</button>

phone-details.html模板。

總結

現在圖片瀏覽器已經做好了,我們已經為步驟11(最后一步啦!)做好了準備,我們會學習用一種更加優雅的方式來獲取數據。

以上就是AngularJS 事件處理器的資料整理,后續繼續補充,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泾源县| 彰化县| 岑巩县| 石台县| 边坝县| 贵定县| 翁牛特旗| 龙游县| 班戈县| 新绛县| 江北区| 隆化县| 崇阳县| 铁岭市| 凉城县| 彰化县| 城口县| 萝北县| 迁安市| 定西市| 施甸县| 南丰县| 张家口市| 固始县| 临漳县| 云南省| 镇赉县| 余庆县| 凉城县| 兴国县| 汶川县| 繁峙县| 新安县| 织金县| 桃江县| 牙克石市| 雷波县| 铜鼓县| 花莲县| 怀化市| 英吉沙县|