2016-07-11 5 views
0

Ich möchte alle defekten URLs durch einen Standard ersetzen, wenn die defekte URL nicht existiert mit AngularJS jqlite attr(). Ich benutze es so, aber werde nicht funktionieren.Ersetze eine defekte URL durch einen Standard, wenn die defekte URL nicht existiert mit AngularJS jqlite

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'"); 
}) 

Was ist korrektes Skript?

+0

ng, wenn mit img-Tag nicht genug für Sie hinzufügen? – Erez

+0

@Erez Nein, manchmal "ng-src" hat einen Link, aber diese Datei auf dem Server entfernt –

Antwort

1

Sie haben Bibliotheken, die das schon tun.

Überprüfen Sie angular-fallback-src und angular-img-fallback.

+0

Wie man es ohne Verwendung der Direktive implementieren? –

+0

Sie müssen mit 'onError' umgehen, aber es ist ein Ereignis, kein Attribut. Das ist der Fehler in deinem Code. – Ygalbel

+0

Wie 'Onerror' Ereignis dynamisch hinzufügen? –

1

gibt es nur wenige Möglichkeiten, zu lösen, dass

versuchen, die nächsten Optionen

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"/> 

Oder

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

wie Sie nicht Direktive verwenden möchten, können Sie diese img-Tag Zeile machen die arbeit für sie

tun es dynamisch

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

und implementieren diese src auf die Funktion oder Umfang var

Kontrolle dieses plnkr https://plnkr.co/edit/S6KDo2crjMGASKtrToGo?p=preview

+0

How 'Onerror' Attribut dynamisch zu allen '' Tag hinzufügen? –

+0

sollten Sie tun onerror = "angle.element (this) .scope(). ImgError()" – Erez

Verwandte Themen