当前位置: 首页 > 面试题库 >

如果未找到AngularJS ng-src条件(通过url)

易京
2023-03-14
问题内容

我正在将一堆本地存储的图像移植到最新的在线资源中。最初,当我将图像存储在本地时,可以对图像使用以下条件。

<img ng-src="/Content/champions/{{Champions1[champ1-1].cName.trim() || 'None'}}.png"

这将根据名称获取当前的图像路径,如果不存在,它将简单地返回的图像路径。 /Content/champions/None.png

我想这将通过url以相同的方式工作。所以我做了语法。

<img ng-src="http://ddragon.leagueoflegends.com/cdn/4.20.1/img/champion/{{Champions1[champ1-1].cName.trim() 
|| 
'/Content/champions/None'}}.png"

我假设会发生的是,如果返回上述URL 404 (Not Found),它将默认返回到我的本地存储中,以显示无图像。但是,它仍然尝试显示在线图像,并显示“残破的图像/图片”图标,而不是限制在我本地的“无”图像上。

我该如何解决?还是当Angular说Not Found时为什么不对这种情况做出正确的响应404 (Not Found)

有时,它会尝试将条件语法添加到URL中,而不是在主目录中重新查找,这可能是问题所在吗?即有时它返回以下内容,而不是从我的Content文件夹重新启动。http://ddragon.leagueoflegends.com/cdn/4.20.1/img/champion//Content/champions/None.png


问题答案:
{{Champions1[champ1-1].cName || 'None'}}

'None'仅当您的图片为null或未定义时,此构造才会将您的图片名称替换为。

Angular指令ngSrc没有用于处理404响应的任何本机功能。

但是,可以使用以下onErrorSrc指令对其进行修复。

var myApp = angular.module('myApp',[]);

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

<img ng-src="wrongUrl.png" on-error-src="http://google.com/favicon.ico"/>

参见 JSFiddle 上的
示例



 类似资料:
  • 当我在使用JavaSpringHibernateStruts2Eclipse项目时。我使用buildpath->addjar选项从工作区内部的文件夹中添加JAR。即使类可用,也会显示class not found异常。 如果我把这些jar文件放在WEB-INF/lib文件夹中,一切正常。我应该将这些文件保存在lib中吗?我可以将这些jar包含在一个单独的文件夹中,然后使用eclipse confi

  • 问题内容: 我的ActiveRecord模型中有以下查询方法: 因此,这将查找所有具有从逗号分隔的列表中获取的标签并转换为数组的标签的记录。 目前,这会匹配带有ANY匹配标签的记录-如何使其在匹配所有标签的地方工作。 IE:如果当前如果我输入:“ blue,red”,那么我将获得所有标记为blue或red的记录。 我想匹配所有标有蓝色和红色的记录。 有什么建议吗? - 编辑 - 我的模型是这样的:

  • 问题内容: 我有一个像这样的数组: 现在,我想按某种条件过滤该数组,只保留值等于2的元素,并删除值不等于2的所有元素。 所以我的预期结果数组将是: 注意:我想保留原始数组中的键。 如何使用PHP做到这一点?有内置功能吗? 问题答案:

  • 我将Selenium与PHP WebDriver结合使用。我试图单击导航栏中的链接,该链接显示在HTML中,如下所示: 我正在尝试选择元素,然后单击它。但是,当我尝试使用xpath时,如下所示: 或 我得到以下错误: 没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:“/*[@showpage=“cards”]”}(会话信息:chrome=70.0.3538.

  • 我想做一个程序,要求你输入一些数据作为一个字符串,然后如果字符串超过6个字符长,它会要求你再做一次,直到你输入一个少于6个字符的答案,然后继续下一个问题,我怎么做?

  • 我想用scrapy来获取IMG的链接,所以我在scrapy的爬行器中编写了以下程序: 然而,这是不管用的。有什么问题吗?