在更新的Angular中等效于ngSrc?


92

我想用来自JSON对象的src实现img。

在AngularJS中,我可以这样做:

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

Angular 2+中有与此等效的东西吗?

Answers:


179

AngularJS:

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

角度2+:

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

角度文档


请注意,插值可以达到相同的结果:

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

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

只要您不希望双向绑定,这两个用于属性绑定的语句之间就没有技术上的区别。

在许多情况下,插值是属性绑定的便捷替代方法。实际上,Angular在渲染视图之前将这些插值转换为相应的属性绑定。 资源


9
所以,其不等同于NG-SRC,因为NG-SRC避免负载图像之前NG-SRC具有值
圣塞瓦斯蒂安Rojas的

正如塞巴斯蒂安所说!这是不平等的,因为像这样的元素video/audio和其他几个元素不应该attributes没有价值。ng-src并不等同[src]
于此

8

要在Angular应用程序中实现ng-src的相同功能,需要两个步骤。

第一步:

在HTML中,使用新语法:

<img [src]="imageSrc">

第二步:

在您的组件/指令中,将值初始化为empty。例如:

@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,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.