我试图在 Angular 中做一个属性绑定的例子。我决定拍摄一张图像,然后通过属性绑定将它的所有 3 个属性——宽度、高度、src。令我惊讶的是,虽然没有错误,并且图像正在由 URL 呈现(在 url 中没有错误),但宽度和高度仍然被呈现为零 (0)。为什么这个?据我所知,Image 将高度和宽度作为其属性。那么问题出在哪里?
abc.component.html
//This does not work - gives height:0px, width:0px
<img [width]="'100px'" [height]="'100px'" [src]="'./assets/img/hermione.jpg'">
//This works - renders image, with height:100px, width: 100px
<img width="100px" height="100px" [src]="'./assets/img/hermione.jpg'">
有人可以解释为什么第二种情况运行良好的奇怪行为,但首先虽然图像被渲染但从未见过(如高度:0px,宽度:0px)?
错误:
另外,(根据 Pronoy Sarkar - 请参阅下面的答案)
//This also works
<img [attr.width]="'100px'" [attr.height]="'100px'" [src]="'./assets/img/hermione.jpg'">
现在,问题是为什么简单的 [height] 和 [width] 不起作用?毕竟,我们从来没有做过[attr.src]?