이 단계에서는 휴대폰 세부 정보 페이지에서 휴대폰 사진을 클릭 할 수 있습니다.
작업 디렉토리를 재설정하십시오.
GIT 체크 아웃 -F Step -10
휴대 전화 세부 사항보기는 현재 전화의 큰 그림과 작은 작은 썸네일을 보여줍니다. 사용자가 썸네일을 클릭하고 큰 것을 자신으로 교체 할 수 있다면 더 나을 것입니다. 이제 AngularJS로 구현하는 방법을 살펴 보겠습니다.
9 단계와 10 단계의 가장 중요한 차이점은 다음과 같습니다. Github의 완전히 차이를 볼 수 있습니다.
제어 장치
app/js/controllers.js
... 함수 phoneDetailctrl ($ scope, $ loureparams, $ http) {$ http.get ( 'phones/' + $ lourteparams.phoneid + '.json'). success (function (data) {$ scope.phone = data; $ scope.mainimageUrl = dataMate [0]); $ scope.setImage = function (imageUrl) {$ scope.MainImageUrl = imageUrl; }} // phonedetailctrl. $ inject = [ '$ scope', '$ loureparams', '$ http'];PhoneDetailCtrl 컨트롤러에서 MainImageUrl 모델 속성을 생성하고 기본값을 첫 번째 모바일 이미지의 URL로 설정합니다.
주형
앱/부분/phone-detail.html
<img ng-src = "{{mainimageurl}}"> ... <ul> <li ng-repeat = "img in phone.images"> <img ng-src = "{{img}}"ng-click = "setimage (img)"> </li> ...우리는 큰 이미지의 NGSRC 지침을 MainImageUrl 속성에 바인딩합니다.
동시에 NGClick 프로세서를 축소판에 등록합니다. 사용자가 썸네일을 클릭하면 프로세서가 SetImage 이벤트 처리 기능을 사용하여 MainImageURL 속성을 선택한 썸네일의 URL로 설정합니다.
시험
이 새로운 기능을 확인하기 위해 두 가지 엔드 투 엔드 테스트를 추가했습니다. 검증 기본 이미지는 기본적으로 첫 번째 모바일 이미지로 설정됩니다. 두 번째 테스트는 여러 썸네일을 클릭하고 기본 이미지가 합리적으로 변하는 것을 확인합니다.
테스트/e2e/시나리오스 JS
... ( '전화 세부 사항보기', function () {... '첫 번째 전화 이미지를 기본 전화 이미지로 표시해야합니다', function () {excl (element ( 'img.phone'). attr ( 'src')). tobe ( 'img/phones/nexus-s.0.jpg'); 요소 ( '. Phone-Child Li : Nth-Child (3) IMG'). Click ( 'IMG.Phone'). TOBE ( 'IMG/PHONES/NEXUS-S.2.JPG'( '. Phone-Thumbs Li : Nth-Child'); explity ( 'img.phone'). attr ( 'src')). }); });이제 브라우저를 새로 고치고 엔드 투 엔드 테스트를 다시 실행하거나 AngularJS 서버에서 실행할 수 있습니다.
관행
PhoneDetailCtrl에 새 컨트롤러 메소드를 추가하십시오.
$ scope.hello = function (name) {alert ( 'hello' + (이름 || 'world') + '!'); }추가 :
<button ng-click = "hello ( 'elmo')"> hello </button>
폰 사막으로 이동하십시오 .html 템플릿.
요약
이미지 브라우저가 준비되었으므로 11 단계 (마지막 단계!)에 대한 준비가되었으므로보다 우아한 방식으로 데이터를 얻는 법을 배웁니다.
위는 AngularJS 이벤트 프로세서에서 정렬 된 정보입니다. 나중에 계속 추가 할 것입니다. 이 사이트를 지원 해주셔서 감사합니다!