一个指令需要验证码:
<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-CLASS = “{大:$第一}” 失败unexplicably这里)。
而且应该把它变成这样:
<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>
这是指令:
.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似乎在链接功能更新在指令中,但更新并未反映在视图中
$第一似乎不起作用(为什么犯规”纳克级=‘{大:$第一}’反正工作?)
isBig(我用先去解决这个问题有$)似乎对所有的重复都是真实的或错误的,从而破坏了目的。这应该不会发生,因为在指令之外调用$ first,并且因此每次调用指令时都会更新。
这完美的作品。我惊讶地发现自己以前没有偶然发现过这种语法。谢谢! – darioshanghai