Angular - 检查图像

时间:2016-09-12 14:47:16

标签: angularjs html5

是否有一种简单的方法可以使用Angular为图像提供多个源(多于两个)?

我们正在更改用户个人资料的图像尺寸,但这需要一段时间,在转换过程中,旧图像仍然有效。对于不会移动的旧配置文件也是如此。

目前我们有一个默认" notFound.jpg"如果图像被意外从服务器中删除,则用作占位符的图像

<img src="./images/Profile/{{Photo}}" ng-error-src="./images/notFound.jpg">

我们希望将其作为选项保留,但在我们确定图片丢失之前,我们可以检查./images/NewProfiles./images/Profiles

任何建议

2 个答案:

答案 0 :(得分:1)

使用此:

<img ng-src="{{ './images/Profile/'{{Photo}} || './images/notFound.jpg'}}">

答案 1 :(得分:0)

如果不检查源2,如何创建检查图像是否存在于源1的指令。如果两个位置图像都不存在则显示notFound-image?

下面只是伪代码;我没有测试它..

<img img-directive-src="./images/Profile/{{Photo}}" 
 img-directive-fallback="./images/Profiles/{{Photo}" 
 img-directive-error="./images/notFound.jpg" />

在指令中这样(快速和肮脏):

.directive('imgDirective', function() {
    return {
       scope: {
           src: '=',
           fallback: '=',
           error: '='
       },
       link: function(scope, element, attrs) {
          var request = new XMLHttpRequest();
          request.open('HEAD', scope.src, false);
          request.send();
          if(request.status == 200) {
              element.attr('src', scope.src);
          } else {
              request = new XMLHttpRequest();
              request.open('HEAD', scope.fallback, false);
              if(request.status == 200) {
                  element.attr('src', scope.fallback);
              } else {
                  element.attr('src', scope.error);
              }
          }
       }
    };
});