图片有时来有时不在 angularJs
Images sometimes come sometimes not in angularJs
我是 angular 的新手,只是遇到了一个问题,我无法弄清楚为什么图像不显示,有时显示有时不显示。我也检查了控制台,没有错误。
<div class="main">
<ul>
<li class="two" ng-repeat="items in student | filter : query | orderBy: studentOrder : direction">
<!--we use ng-src because when we run the file the angular.min.js file reads the html fot image so we get an error in console -->
<a class="link" href="#/details/{{student.indexOf(items)}}">
<img class="image" ng-src="images/{{items.image}}.JPG" alt="Photo is not availble">
<p class="four">{{items.name | uppercase}}
</br>
</p>
<p class="five">
{{items.univeristy | lowercase}}
</p>
</a>
<hr>
</li>
</ul>
</div>
问题是您每次都引用大写 JPG
。听起来有些图像有 JPG
意味着它们可以工作。但图像往往是各种人的命名约定的混合体。请检查所有图像路径是否正确。
--
附带说明一下,有几种方法可以改进您的代码。首先,我冒昧地假设你的学生反对。
请日后提供,因为它将导致更准确的答案
我已将您的作用域变量名称更改为更具可读性。
ng-repeat="student in students"
应该更具可读性 [singular] in [plural]
。这意味着当引用每个 属性 时,您会得到 student.name
,一目了然更有意义。
我还设置了您的 indexOf
函数以使用 angular 的原生 $index
。如果这不正确,请随时改回来。
您图片的 alt 标签严格来说并不是处理图片加载失败情况的消息。尽管您的消息对屏幕 reader 有帮助,但它应该真正描述图像的意图,即 Photograph of student's University
,如果您想显示错误消息,建议使用 ng-if 语句。
我还建议切换到 controllerAs
语法并将您的数据绑定到控制器。您可以阅读此 here
型号:
$scope.students = [{
name: 'joe',
university: 'someuni',
image: 'image-name'
}];
模板:
<div class="main">
<ul>
<li class="two" ng-repeat="student in students">
<a class="link" href="#/details/{{$index}}">
<!-- I would usually have the absolute url so taht any changes I need to make can be done in ctrl/srvc -->
<img class="image" ng-src="{{student.image}}" alt="Photo is not availble" width="120">
<p class="four">{{student.name | uppercase}}</br></p>
<p class="five">{{student.univeristy | lowercase}} </p>
</a>
<hr>
</li>
</ul>
</div>
我是 angular 的新手,只是遇到了一个问题,我无法弄清楚为什么图像不显示,有时显示有时不显示。我也检查了控制台,没有错误。
<div class="main">
<ul>
<li class="two" ng-repeat="items in student | filter : query | orderBy: studentOrder : direction">
<!--we use ng-src because when we run the file the angular.min.js file reads the html fot image so we get an error in console -->
<a class="link" href="#/details/{{student.indexOf(items)}}">
<img class="image" ng-src="images/{{items.image}}.JPG" alt="Photo is not availble">
<p class="four">{{items.name | uppercase}}
</br>
</p>
<p class="five">
{{items.univeristy | lowercase}}
</p>
</a>
<hr>
</li>
</ul>
</div>
问题是您每次都引用大写 JPG
。听起来有些图像有 JPG
意味着它们可以工作。但图像往往是各种人的命名约定的混合体。请检查所有图像路径是否正确。
--
附带说明一下,有几种方法可以改进您的代码。首先,我冒昧地假设你的学生反对。
请日后提供,因为它将导致更准确的答案
我已将您的作用域变量名称更改为更具可读性。
ng-repeat="student in students"
应该更具可读性 [singular] in [plural]
。这意味着当引用每个 属性 时,您会得到 student.name
,一目了然更有意义。
我还设置了您的 indexOf
函数以使用 angular 的原生 $index
。如果这不正确,请随时改回来。
您图片的 alt 标签严格来说并不是处理图片加载失败情况的消息。尽管您的消息对屏幕 reader 有帮助,但它应该真正描述图像的意图,即 Photograph of student's University
,如果您想显示错误消息,建议使用 ng-if 语句。
我还建议切换到 controllerAs
语法并将您的数据绑定到控制器。您可以阅读此 here
型号:
$scope.students = [{
name: 'joe',
university: 'someuni',
image: 'image-name'
}];
模板:
<div class="main">
<ul>
<li class="two" ng-repeat="student in students">
<a class="link" href="#/details/{{$index}}">
<!-- I would usually have the absolute url so taht any changes I need to make can be done in ctrl/srvc -->
<img class="image" ng-src="{{student.image}}" alt="Photo is not availble" width="120">
<p class="four">{{student.name | uppercase}}</br></p>
<p class="five">{{student.univeristy | lowercase}} </p>
</a>
<hr>
</li>
</ul>
</div>