我正在使用Angular 2开发测试应用程序,目前遇到一个问题,即如何基于来自模型的列表添加类。
在Angular 1中可以这样做:
// model
$scope.myClasses = ['class1', 'class2', ...];
// view
... ng-class="myClasses" ...
在Angular 2中,到目前为止我所能做的就是:
// view
... [class.class1]="true" [class.class2]="true" ...
明显这种方法不太灵活,我相信一定有更好的方法。然而,我也尝试过:
// model
class ... {
private myClasses: any;
constructor() {
this.myClasses = ['class1', 'class2', ...];
}
// view
... [class]="myClasses" ...
但是这并不起作用,我已经尝试过将myClasses
作为单个类的字符串名称、字符串数组、具有类名键和值为true的对象、此类对象数组,但可悲的是,以上列出的所有方法都无法起作用。
elementRef:ElementRef
并直接引用类列表来通过组件的类添加它们。或者可能在视图中使用您的最后一次尝试...this.classes = {'class1':true, 'class2':true}
并在您的视图中使用[class]="classes"
。 - Brocco