我正在构建的应用程序要求用户设置4条信息,然后才能加载该图像。该图像是应用程序的核心部分,因此断开的图像链接使整个外观看起来很烦。我想在404上放另一张图片。

有任何想法吗?我想避免为此编写自定义指令。

令我惊讶的是,我找不到类似的问题,尤其是当文档中的第一个问题相同时!

http://docs.angularjs.org/api/ng.directive:ngSrc

最佳答案

这是一个非常简单的指令,用于监视加载图像并替换src时的错误。 (Plunker)

HTML:

<img ng-src="smiley.png" err-src="http://google.com/favicon.ico" />

Javascript:
var app = angular.module("MyApp", []);

app.directive('errSrc', function() {
  return {
    link: function(scope, element, attrs) {
      element.bind('error', function() {
        if (attrs.src != attrs.errSrc) {
          attrs.$set('src', attrs.errSrc);
        }
      });
    }
  }
});

如果要在ngSrc为空白时显示错误图像,则可以添加以下(Plunker):
attrs.$observe('ngSrc', function(value) {
  if (!value && attrs.errSrc) {
    attrs.$set('src', attrs.errSrc);
  }
});

问题在于,如果该值为空白,则ngSrc不会更新src属性。

关于angularjs - 如果ngSrc路径解析为404,是否有办法回退到默认值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16310298/

10-11 06:12