【发布时间】:2015-07-13 02:38:26
【问题描述】:
我一直在使用以下代码来隐藏页面上任何“404”图像的“祖父母”,并且效果很好:
function imgError(image){
image.parentNode.parentNode.style.display = 'none';
}
<img ng-src="{{photo.img}}" onerror="imgError(this);" id="image">
我想将此功能移动到自定义 Angular 指令中,以下是我当前的实现,但它不起作用。我认为我的问题在于错误地抓取了图像的“祖父母”元素。
指令:
angular
.module('app')
.directive('hideImage', hideImage);
function hideImage() {
var directive = {
link: link,
restrict: 'A'
};
return directive;
function link(scope, element, attrs) {
element.bind('error', function() {
angular.element(this).parent().parent().attr('style', attrs.hideImage);
})
}
}
HTML:
<div ng-repeat="photo in event.photos">
<a ng-href="{{photo.link}}" target="_blank" title="{{photo.text}}">
<img ng-src="{{photo.img}}" hide-image="'display: none;'" id="image">
</a>
</div>
【问题讨论】:
-
只是好奇:您是否尝试从
hide-image属性中删除单引号? -
有机会我会试一试的。谢谢,我认为这也应该有效。
标签: javascript html css angularjs angularjs-directive