2016-07-11 13 views
0

Я хочу заменить все сломанные URL-адреса img по умолчанию, когда сломанный url не существует с AngularJS jqlite attr(). Я использую его так, но не буду работать.Замените сломанный URL-адрес img по умолчанию, когда сломанный url не существует с 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'"); 
}) 

Что такое правильный сценарий?

+0

добавить нг, если с IMG тег не достаточно для вас? – Erez

+0

@Erez Нет, иногда 'ng-src' имеет ссылку, но этот файл на удаленном сервере –

ответ

1

У вас есть библиотеки, которые уже делают это.

Проверить angular-fallback-src и angular-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()"/> 

и реализовать этот SRC на функции или области видимости вар

проверки этого plnkr https://plnkr.co/edit/S6KDo2crjMGASKtrToGo?p=preview

+0

Как динамически добавлять атрибут 'onerror' ко всем' 'тегу? –

+0

вы должны сделать onerror = "angular.element (this) .scope(). ImgError()" – Erez

 Смежные вопросы

  • Нет связанных вопросов^_^