如果单独服务器上的图像不存在,我想显示默认图像。是否有角度指令来完成此操作?
问问题
34649 次
4 回答
127
不,但您可以创建一个。
HTML:
<img fallback-src="http://google.com/favicon.ico" ng-src="{{image}}"/>
JS:
myApp.directive('fallbackSrc', function () {
var fallbackSrc = {
link: function postLink(scope, iElement, iAttrs) {
iElement.bind('error', function() {
angular.element(this).attr("src", iAttrs.fallbackSrc);
});
}
}
return fallbackSrc;
});
于 2013-05-03T00:01:04.537 回答
3
是否有角度指令...
http://ngmodules.org/modules/angular-img-fallback
Github:https ://github.com/dcohenb/angular-img-fallback
(截至目前32星)
于 2015-03-27T15:17:19.010 回答
2
Angualr 2 版本
https://github.com/VadimDez/ng2-img-fallback
HTML
<img fallback-src="http://google.com/favicon.ico" src="http://google.com/failedImage.png"/>
Angular 2 组件
import { Directive, ElementRef, Input } from '@angular/core';
@Directive({
selector: '[fallback-src]'
})
export class FallbackSrc {
@Input('fallback-src') imgSrc: string;
private el: HTMLElement;
private isApplied: boolean = false;
private EVENT_TYPE: string = 'error';
constructor(el: ElementRef) {
this.el = el.nativeElement;
this.el.addEventListener(this.EVENT_TYPE, this.onError.bind(this))
}
private onError() {
this.removeEvents();
if (!this.isApplied) {
this.isApplied = true;
this.el.setAttribute('src', this.imgSrc);
}
}
private removeEvents() {
this.el.removeEventListener(this.EVENT_TYPE, this.onError);
}
ngOnDestroy() {
this.removeEvents();
}
}
于 2017-01-30T15:42:25.293 回答
1
我编写了自己的后备库。
一个非常简单直接的角度后备图像库:
https://github.com/alvarojoao/angular-image-fallback
用于加载图像和处理图像错误的实用程序,具有用于处理图像加载中的错误的图像保持器和用于图像加载占位符的图像加载
http://alvarojoao.github.io/angular-image-fallback
用法
只需将图像属性添加到您的<img />
标签
<img image="{{'path/to/img.jpg'}}" />
确保 您不使用ng-src
图像src
属性。
高级选项
使用自定义后备和加载占位符:
<img image="{{image.url}}" image-loading="/image/loading.gif"
image-holder="/image/error.png" />
例子:
于 2016-04-26T19:55:42.330 回答