动态更改img [src]

时间:2018-04-05 11:22:21

标签: angular typescript

我有包含记录列表的组件

export class HomeComponent implements OnInit {

    public wonders: WonderModel[] = [];

    constructor(private ms: ModelService){
        ms.wonderService.getWonders();
        this.wonders = ms.wonderService.wonderList;
    }

    ngOnInit(){}
}

this.wonders返回这样的值数组 array of this.wonders

我正试图像这样

动态获取图像源的id值
<div class="img-content" *ngFor="let wonder of wonders">
    <header class="img-content-header">
        <div style="width: 45px; display: table-cell;"> <img [src]='assets/images/{{wonder.id}}.jpg'  height="40px" width="40px"> </div>
        <div style="display: table-cell;">
            <div>{{wonder.name}}</div>
        </div>
    </header>
</div>

这样做我收到此错误

  

分析器错误:得到插值({{}}),其中表达式是预期的   在[assets / images / {{wonder.id}}。jpg]

的第14栏

任何人都可以提出任何可能的解决方案。

4 个答案:

答案 0 :(得分:5)

你可以这样做:

[src]='"assets/images/"+wonder.id+".jpg"'

src='assets/images/{{wonder.id}}.jpg'

答案 1 :(得分:2)

你需要像这样绑定

<img src='{{ "assets/images/" + wonder.id + ".jpg" }}'

[]{{ }}不兼容。

答案 2 :(得分:2)

它的插值,所以当你从后端打字稿创建完整路径并分配它时,你不需要[],所以只需删除[]就可以了

<img src='assets/images/{{wonder.id}}.jpg'  height="40px" width="40px">
当您绑定完整的vaule时,

[]会很有用,因为来自typescript,例如

<img [src]='path'  height="40px" width="40px"> 

在类型脚本中,您有路径变量

 const path = 'imagepath.jpg';

答案 3 :(得分:1)

您正在

部分中使用插值和属性绑定
[src]='assets/images/{{wonder.id}}.jpg'

您可以删除属性绑定

src='assets/images/{{wonder.id}}.jpg'

或删除插值

[src]='assets/images/' + wonder.id + '.jpg'

有关详细信息,请查看Property Binding or Interpolation in Angular