2012-09-10 6 views
5

Ich habe diese jsFiddle: http://jsfiddle.net/HMZuh/1/Bild Verhindern von Rendering in AngularJS

Welche diesen HTML

<div ng-app ng:controller="ShowHideController"> 
    <div ng-show='showMe'> 
     <img ng-src="{{imageSource}}"/> 
    </div> 
    <button ng-click='showImage()'> show image </button> 
<div> 

und dieses Skript enthält:

function ShowHideController($scope) { 
    $scope.showMe = false; 

    $scope.imageSource = ''; 

    $scope.showImage = function(){ 
     $scope.showMe = true; 
     $scope.imageSource = 'https://www.google.com/images/srpr/logo3w.png'; 
    } 
} 

Ich erhalte, eine 404-Bild nicht gefunden, wenn die Quelle noch nicht festgelegt wurde, gibt es eine Möglichkeit, dies zu verhindern, wenn showMe falsch ist?

+0

Haben Sie dieses Problem nicht - sich fragen, ob es ein Browser-Problem ist. Mit welchem ​​Browser versuchst du das? –

+0

Ich habe es auf Chrom und Firefox versucht - beide neuesten Versionen –

+0

Sorry Kumpel, versuchte dies auf einem lokalen Projekt von Grund auf neu, bekam nie die 404. –

Antwort

3

Ich verbesserte dies mit der Verwendung von ui-if von http://angular-ui.github.com/ Statt verstecken/zeigt mit ng-hide/ng-show, ui-wenn das Element nicht einfach gerendert.

<div ui-hide='ImageHasBeenUploaded'> 
    <img ng-src='/some/image/path/{{imageName}}/> 
</div> 
3

Um dies zu lösen, können Sie:

  1. Verwenden ng-repeathttp://jsfiddle.net/bGA4T/
  2. Verwenden $compile und erklären, um Ihre eigene Richtlinie
  3. Schreiben Sie Ihre eigene ng-src Richtlinie
  4. ...

Ich denke, es gibt viele Möglichkeiten, dies zu lösen.

+0

Danke, endete ich mit ng-Wiederholung, die das Problem "gelöst". Nicht ganz was ich gerne hätte, aber es hat funktioniert =) –

Verwandte Themen