2016-07-11 60 views
0

當AngularJS jqlite attr()不存在損壞的URL時,我想用默認值替換所有損壞的img url。我這樣使用它,但不會工作。當AngularJS jqlite不存在損壞的URL時,用默認的URL替換已損壞的img url

var app = angular.module('app'); 

app.controller('AdminCtrl',function($scope{ 
    angular.element(document.querySelector('img')).attr("onerror","this.src='../assets/img/broken/broken-link.png'"); 
}) 

什麼是正確的腳本?

+0

添加如果與img標籤不夠的,你納克? – Erez

+0

@Erez不,有時候'ng-src'有鏈接,但服務器上的那個文件被刪除 –

回答

1

你有已經這樣做的庫。

檢查angular-fallback-srcangular-img-fallback

+0

如何在不使用僞指令的情況下實現它? –

+0

你必須處理'onError',但它是一個事件,而不是屬性。這是你的代碼中的錯誤。 – Ygalbel

+0

如何動態添加'onerror'事件? –

1

有解決這個

嘗試下一個選項幾種方法

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="someurl.png"/> 

或者

<img ng-src="{{ imagesrc}}" onerror="this.src='someimgsrc.png'"/> 

,你不想使用指令,你可以使用這個IMG標記線將使爲你工作

動態地做到這一點

<img ng-src="{{ imagesrc}}" nerror="angular.element(this).scope().imgError()"/> 

和執行功能或範圍VAR

檢查這個src這plnkr https://plnkr.co/edit/S6KDo2crjMGASKtrToGo?p=preview

+0

如何動態地爲''標籤添加'onerror'屬性? –

+0

你應該做onerror =「angular.element(this).scope()。imgError()」 – Erez