의 속성을 변경 :
<div ng-repeat="image in home_images | limitTo: 5 " imagesrc="img/links/{{image.file_name}}" imagelink="{{image.url}}" title="{{image.title}}" caption="{{image.caption}}" isbig="$first"></div>
(NG-클래스 = "{큰는 : $ 먼저}"unexplicably 여기 실패).
해야하고이로 만들어 버린다는 :
.directive('imagelink', function(){
return {
replace: true,
scope: {
imagesrc: '@',
imagelink: '@',
title: '@',
caption: '@',
isbig: '@'
},
templateUrl: 'partials/image-link.html',
link: function(scope, element, attrs){
element.bind('mouseenter', function(){
element.addClass('show-caption');
});
element.bind('mouseleave', function(){
element.removeClass('show-caption');
});
if (attrs.isbig) {
console.log(attrs);
attrs.imagesrc = attrs.imagesrc + "_bg.png";
} else {
attrs.imagesrc = attrs.imagesrc + "_sm.png";
}
}
};
});
이 세 가지 문제가 있습니다 :
attrs에 링크 기능으로 업데이트 할 것
<a ng-href="{{imagelink}}" class="image-link"> <div class="image" ng-class="{big: isbig === 'true'}"> <div class="caption"><h6>{{title}}</h6><span>{{caption}}</span></div> <img ng-src="{{imagesrc}}" alt="title"> </div> </a>
지시어입니다 지시문에서 업데이트가보기에 반영되지 않음
먼저 작동하지 않을 것 같다 $ (왜 나던 '겨 클래스 = "{큰 : $ 먼저}"어쨌든 작동?)
isBig을 (내가 처음 $로이 문제를 해결 이동하는 데 사용) 목적을 무너 뜨리는 모든 반복에 대해 진실 또는 거짓 인 것으로 보인다. $ first가 지시어의 밖에서 호출되기 때문에 이것은 결코 일어나서는 안되며, 그러므로 지시어를 호출 할 때마다 갱신된다.
: 여기
아, 그리고이 보여주는 완벽한 jsfiddle입니다. 나는이 문법을 혼자서 혼란에 빠뜨리지 않는 것에 놀랐다. 감사! – darioshanghai