javascript – 如何从带有角度的网址检查文件是否存在?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何从带有角度的网址检查文件是否存在?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1775字,纯文字阅读大概需要3分钟。
内容图文
我正在开发基于Ionic -v1 / Cordova的混合移动应用程序,我想知道最佳实践.
到目前为止,我在控制器函数中找到了一个带fetch函数的选项:
angular.module('my.controllers')
.controller('myCtrl', function ($scope, $q, ws){
var loadImgLst = ws.getImgList().then(function(response){
//get image src in a list
var imgList = response;
var promisesArray = [];
for(var i in imgList) {
var promiseSrc = fetch(imgList[i])
.then(function(response) {
var imgurl = response.url;
if(!response.ok)
{
//get fallback img
imgurl = "http://mysite/img_default.jpg";
}
return imgurl;
}).catch(function(error){
console.log(error);
});
promisesArray.push(promiseSrc);
}
return $q.all(promisesArray);
});
loadImgLst.then(function(lstImg)
{
$scope.lstImg = lstImg;
});
});
在html视图中:
<ion-content>
<div class="list">
<div ng-repeat="src in lstImg">
<img ng-src="{{ src }}">
</div>
</div>
</ion-content>
当我在带有离子服务的浏览器上执行此代码时,我仍然在控制台中出现错误404“未找到”,但显示的是我的默认图像.
我尝试使用XMLHttpRequest()函数和try / catch类似的东西,但结果是一样的.
有没有办法避免(或隐藏)此错误?另一种解决这个问题的方法?
谢谢 :)
编辑:我也尝试了指令选项:
.directive('fallback', function () {
return {
restrict: 'A',
link: function (scope, element, attrs) {
element.bind('error', function() {
element.attr('src', attrs.fallback);
});
}
}
});
和带有ng-src中不存在的文件的html视图:
<img ng-src="http://mysite/no_img.jpg" fallback="http://mysite/img_default.jpg">
我在控制台中仍然有这个错误404.
解决方法:
在您的HTML中,您可以:
<img fallback-src="http://mysite/img_default.jpg" ng-src="http://mysite/img.jpg""/>
然后在你的JS中:
myApp.directive('fallback', function () {
var fallback= {
link: function postLink(scope, iElement, iAttrs) {
iElement.bind('error', function() {
angular.element(this).attr("src", iAttrs.fallback);
});
}
}
return fallback;
});
内容总结
以上是互联网集市为您收集整理的javascript – 如何从带有角度的网址检查文件是否存在?全部内容,希望文章能够帮你解决javascript – 如何从带有角度的网址检查文件是否存在?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。