Có gì tương đương với ngSrc trong Angular mới hơn?


92

Tôi muốn triển khai img, với một src đến từ đối tượng JSON.

Trong AngularJS, tôi có thể làm:

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

Có cái nào tương đương với cái này trong Angular 2+ không?

Câu trả lời:


179

AngularJS:

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

Góc 2+:

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

Tài liệu góc


Lưu ý rằng phép nội suy có thể đạt được kết quả tương tự:

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

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

Không có sự khác biệt kỹ thuật nào giữa hai câu lệnh này đối với ràng buộc tài sản, miễn là bạn không muốn ràng buộc hai chiều.

Nội suy là một sự thay thế thuận tiện cho việc ràng buộc tài sản trong nhiều trường hợp. Trên thực tế, Angular chuyển các nội suy đó thành các ràng buộc thuộc tính tương ứng trước khi hiển thị khung nhìn. nguồn


9
như vậy, nó không tương đương với ng-src, vì ng-src tránh tải hình ảnh trước khi ng-src có giá trị
Sebastián Rojas

Như Sebastian đã kể! Nó không bình đẳng bởi vì các phần tử giống video/audiovà ít phần tử khác không nên có attributesvà không có giá trị. ng-srckhông phải là tương đương với[src]
Nikhilesh Shivarathri

8

Đây là một quá trình gồm hai bước để đạt được chức năng tương tự của ng-src trong ứng dụng Angular của bạn.

Bước đầu tiên:

Trong HTML của bạn, hãy sử dụng cú pháp mới:

<img [src]="imageSrc">

Bước thứ hai:

Trong thành phần / chỉ thị của bạn, hãy khởi tạo giá trị để trống . Ví dụ:

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

Bây giờ, điều này sẽ loại bỏ nullcuộc gọi mạng (cuộc gọi trống) do giá trị không được đặt cho phần tử.



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>

Không đồng ý vì đây không phải là giải pháp được khuyến nghị vì nó tạo ra một yêu cầu không thành công tới: img.youtube.com/vi {{post.youtubeVideoId}} / default.jpg.
Jamie

Tạo một yêu cầu không thành công! Đã đồng ý.
Nikhilesh Shivarathri,
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.