2016-06-24 70 views
0

我正在使用angular2,並且很想知道當變量具有某種datatype.i.e時是否可以使用ngSwitch加載<div>標記。 是這樣的:在angular2中使用ngSwitch數據類型

<div [ng-switch]="value"> 
    <p *ng-switch-when="isObject(value)">This is Object</p> 
    <p *ng-switch-when="isArray(value)">This is Array</p> 
    <p *ng-switch-when="isBoolean(value)">This is Boolean</p> 
    <p *ng-switch-when="isNumber(value)">This is Number</p> 
    <p *ng-switch-default>This is Simple Text !</p> 
</div> 

這是可能加載div標籤時,變量是某些數據類型的? 如果沒有,對此有任何解決方法? 謝謝。

+0

你爲什麼不使用ngIf? –

回答

1

另一種方法是使用ngIf

<p *ngIf="isObject(value)">This is Object</p> 
    <p *ngIf="isArray(value)">This is Array</p> 
    <p *ngIf="isBoolean(value)">This is Boolean</p> 
    <p *ngIf="isNumber(value)">This is Number</p> 
    <p *ngIf="!isObject(value) || !isArray(value) || !isBoolean(value) || !isNumber(value)">This is Simple Text !</p> 
+0

如此ngIf迴應第一個錯誤它發現?有趣。 ||將評估每一個尋找真正的聲明通常不會嗎?這意味着代碼應該輸出一團糟。 – rbnzdave

+0

反過來,它顯示了所有評估爲「真」值的「p」標籤 – AngJobs

1

是的,你可以做到,但現在直接在模板中。就在控制器創建一個方法來檢查類型:

import {Component} from '@angular/core' 

@Component({ 
    selector: 'my-app', 
    providers: [], 
    template: ` 
    <div> 
     <div [ngSwitch]="checkType(name)"> 
     <p *ngSwitchCase="'string'">is a string!</p> 
     <p *ngSwitchDefault>default</p> 
     </div> 
    </div> 
    `, 
    directives: [] 
}) 
export class App { 
    constructor() { 
    this.name = 'Angular2 (Release Candidate!)' 
    } 

    checkType(value) { 
    return typeof value 
    } 
} 

Working Plunker


請先更新您的角到RC版。

相關問題