Angular2动态img src

mp3*_*por 10 angular

我有以下代码:

<a routerLink="/dashboard" routerLinkActive="active" #rla="routerLinkActive">
          <img src="/assets/navigation/dashboard-icon-active.svg" />
        <template [ngIf]="!isSmallSidebar">
          Dashboard
        </template>
      </a>
Run Code Online (Sandbox Code Playgroud)

运行我的应用程序我看到图像显示正确.但是,如果当前路线处于活动状态,我希望图像发生变化.所以我做了:

<a routerLink="/dashboard" routerLinkActive="active" #rla="routerLinkActive">
        <!-- <img
          id="re-nav-dashboard-img"
          src={{ rla.isActive ? './assets/navigation/dashboard-icon-active.svg' : './assets/navigation/dashboard-icon.svg' }} /> -->
        <template [ngIf]="!isSmallSidebar">
          Dashboard
        </template>
      </a>
Run Code Online (Sandbox Code Playgroud)

另一方面,这导致: 在此输入图像描述

我做错了什么或这是一个错误?

Dav*_* M. 9

您应该以不同方式使用Angular 2绑定.

你的<img>标签应该是:

<img id="re-nav-dashboard-img" [src]="rla.isActive ? './assets/navigation/dashboard-icon-active.svg' : './assets/navigation/dashboard-icon.svg'" />
Run Code Online (Sandbox Code Playgroud)

注意src属性周围的方括号和引号之间的模板表达式.

一些关于属性绑定的阅读:https://angular.io/docs/ts/latest/guide/template-syntax.html# !# property-binding

  • 如果绑定值是字符串,则它们是等效的. (2认同)

mp3*_*por 1

我发现了问题。这是正确的方法。

<img id="re-nav-dashboard-img" src="{{rla.isActive ? './assets/navigation/dashboard-icon-active.svg' : './assets/navigation/dashboard-icon.svg'}}" />
Run Code Online (Sandbox Code Playgroud)

我正在使用src={{}}而不是src="{{}}".