Что эквивалентно ngSrc в новом Angular?


94

Я хотел бы реализовать img с src, исходящим из объекта JSON.

В AngularJS я мог:

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

Есть ли аналог этого в Angular 2+?

Ответы:


182

AngularJS:

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

Угловой 2+:

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

Angular документы


Обратите внимание, что интерполяция может дать тот же результат:

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

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

Между этими двумя операторами привязки свойств нет технической разницы, если вам не нужна двусторонняя привязка.

Во многих случаях интерполяция является удобной альтернативой для привязки свойств. Фактически, Angular переводит эти интерполяции в соответствующие привязки свойств перед визуализацией представления. источник


9
так что это не эквивалент ng-src, потому что ng-src избегает загрузки изображения до того, как ng-src
Себастьян Рохас

Как сказал Себастьян! Это не равнозначно, потому что такие элементы, как video/audioи некоторые другие, не должны иметь attributesникакой ценности. ng-srcне эквивалентно этому[src]
Nikhilesh Shivarathri

8

Это двухэтапный процесс для достижения той же функциональности ng-src в вашем приложении Angular.

Первый шаг:

В своем HTML используйте новый синтаксис:

<img [src]="imageSrc">

Второй шаг:

В вашем компоненте / директиве инициализируйте значение, чтобы оно было пустым . Например:

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

Теперь это устранило бы nullсетевой вызов (пустой вызов) из-за того, что значение не было установлено для элемента.



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>

Голосование отклонено, поскольку это не рекомендуемое решение, поскольку оно создает ошибочный запрос на: img.youtube.com/vi {{post.youtubeVideoId}} / default.jpg.
Джейми

Создает невыполненный запрос! Согласовано.
Nikhilesh Shivarathri
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.