Che cosa è equivalente a ngSrc nel più recente Angular?


92

Vorrei implementare img, con un src proveniente dall'oggetto JSON.

In AngularJS, potrei fare:

<img ng-src="{{hash}}" alt="Description" />

Esiste un equivalente a questo in Angular 2+?

Risposte:


179

AngularJS:

<img ng-src="{{movie.imageurl}}">

Angular 2+:

<img [src]="movie.imageurl">

Documenti angolari


Si noti che l'interpolazione può ottenere lo stesso risultato:

<img src="{{vehicle.imageUrl}}">

<img [src]="vehicle.imageUrl">

Non vi è alcuna differenza tecnica tra queste due istruzioni per l'associazione di proprietà, a condizione che non si desideri l'associazione a due vie.

L'interpolazione è un'alternativa conveniente per l'associazione di proprietà in molti casi. In effetti, Angular traduce quelle interpolazioni nelle associazioni di proprietà corrispondenti prima di eseguire il rendering della vista. fonte


9
quindi, non è equivalente a ng-src, perché ng-src evita di caricare l'immagine prima che ng-src abbia un valore
Sebastián Rojas

Come ha detto Sebastian! Non è uguale perché elementi come video/audioe pochi altri non dovrebbero avere attributesalcun valore. ng-srcnon è equivalente a quello[src]
Nikhilesh Shivarathri il

8

È un processo in due fasi per ottenere la stessa funzionalità di ng-src nella tua applicazione Angular.

Primo passo:

Nel tuo HTML, usa la nuova sintassi:

<img [src]="imageSrc">

Secondo passo:

Nel tuo componente / direttiva, inizializza il valore in modo che sia vuoto . Per esempio:

@Component({
  selector: 'ag-video',
  templateUrl: './video.component.html'
})
export class SampleComponent {
   imageSrc = '';
}

Ora, questo eliminerebbe la nullchiamata di rete (chiamata vuota) a causa del valore non impostato sull'elemento.



1
<tr *ngFor="let post of posts | paginate: { id: 'server', itemsPerPage: 
       10, currentPage: p , totalItems: count  }">

   <td>
    <img src="https://img.youtube.com/vi/{{post.youtubeVideoId}}/default.jpg">
   </td>

   <td>
     {{post.videoName}}
   </td>

</tr>

Downvoted perché questa non è la soluzione consigliata perché crea una richiesta non riuscita a: img.youtube.com/vi {{post.youtubeVideoId}} / default.jpg.
Jamie

Crea una richiesta non riuscita! Concordato.
Nikhilesh Shivarathri
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.