我试图做一些听起来很简单的事情,但我没有找到满足我需求的任何例子。我有一个简单的组件,呈现ajax微调器,但我想允许使用者传入一个类或多个类(由空格分隔)作为组件的输入参数,并让组件视图模板将类添加到img标记中模板。这是我的组成部分:
import { Component, OnInit, Input } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'loading',
templateUrl: 'loading.html',
inputs: ['imgClass']
})
export class LoadingComponent {
@Input() imgClass: string;
}
以下是视图模板:
<img [ngClass]="{ imgClass : true}" src="./Content/img/loading_spinner.gif" />
以下是我想要使用它的方法:
<div class="row" *ngIf="isLoading">
<div class="col-xs-4"></div>
<div class="col-xs-4 no-pad"><loading [imgClass]="center-block"></loading></div>
<div class="col-xs-4"></div>
</div>
所以我希望通过加载组件将中心块添加到img标签中,但它似乎并没有起作用。
它没有获得imgClass变量值,而是添加了文字&#39; imgClass&#39;作为班级。
答案 0 :(得分:6)
更改视图模板:
<img class="{{imgClass}}" src="./Content/img/loading_spinner.gif" />
这更符合您的需求。
答案 1 :(得分:2)
只需
<img [ngClass]="imgClass"
ngClass
支持object,string []和string作为参数
class="{{...}}"
前一段时间引起了移动Safare的问题,但据我记得,这已在polyfill中得到修复。