网站搜索

typescript - Angular2 有没有办法动态设置 bootstrap 列?


是否可以使用If语句来设置div的列宽?我有不同的div元素如下:

    <div class="col-xs-3">
        <select class="form-control" [(ngModel)]="selectedPrototypeSelector" (ngModelChange)="onPrototypeChange()">
            <option *ngFor="#p of prototypes" [value]="p.selector">
                {{ p.selectorName }}
            </option>
        </select>
    </div>

    <div class="col-xs-1" *ngIf="prototype?.valueType === 'Set'">
       <p class="text-center">If</p>
   </div>

当 prototype?.valueType === 'Set' 时,我如何将上面的 col-xs-3 改为 col-xs-2 例如

答案#1

使用 ngClass:

<div [ngClass]="{
    'col-xs-3': prototype?.valueType !== 'Set',
    'col-xs-2': prototype?.valueType === 'Set'}"> 

另见 https://angular.io/docs/ts/latest/api/common/NgClass-directive.html

答案#2

我会为此利用 NgClass:

<div [ngClass]="{'col-xs-2': prototype?.valueType === 'Set', 'col-xs-3': 'prototype?.valueType !== 'Set''}">