2017-12-04 14 views
0

を更新画面での方法や表示では、この方法は扱いません。角度4列挙型は、私はAPIから読み込むフィールド(item.state)私のリストで(* ngFor)がリストに

<div class="posts col-md-12" *ngFor="let item of objectives.results" (click)="openItem(modalObjective, item)"> 
     <div class="row"> 
      <h4 class="col-md-11">{{item.title}}</h4> 
     </div> 
     <div class="row"> 
      <span class="col-md-2">{{item.description}}</span> 
      <span class="col-md-3">{{item.ownerPersonName}}</span> 
      <span class="col-md-3">{{setStateEnum(item.state)}}</span> 
      <div class="progress col-md-4"> 
       <span class="col-md-2">{{item.state}}%</span> 
       <div class="progress-bar" role="progressbar" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100" style="width:70%"> 
        <span class="sr-only">70% Complete</span> 
       </div> 
      </div> 
     </div> 
    </div> 

アイテムをクリックすると、このアイテムの詳細が表示されます。このモーダルでは、この項目の「状態」を「select html component」で変更できます。これは大丈夫ですが、状態を変更してモーダルを閉じると、この項目の状態は更新されますが、今回は数値で更新されます。プロパティがメソッドsetStateEnumに再び入らない場合、これはAPIから返された値(整数)を示します。どのように私は状態を更新するたびにプロパティを渡すことができます "setStateEnum"メソッドに再び文字列の値を表示するには? TSで

setStateEnum方法:

rivate setStateEnum(state: any) { 
    switch (state) { 
     case 0: 
      return "Waiting"; 
     case 1: 
      return "Running"; 
     case 2: 
      return "Finished"; 
     case 3: 
      return "Approved"; 
     default: 
      return state; 
    } 
} 

ありがとう!私はちょうど私のスイッチケースに、それが働いていたよりものparseIntを追加するために必要な

UPDATE

!!マスターピラダのように言った。問題は、プロパティがメソッド "setStateEnum"を通過していて、メソッドが "update"から文字列を受け取っていたために "default"に行くということです。このよう

private setStateEnum(state: any) { 
    switch (parseInt(state)) { 
     case 0: 
      return "Waiting"; 
     case 1: 
      return "Running"; 
     case 2: 
      return "Finished"; 
     case 3: 
      return "Approved"; 
     default: 
      return state; 
    } 
} 
+0

publicに変更すると、public/privateが問題になる場合は – Everest

+0

が動作するかどうかを確認すると、エラーが発生します。 – masterfloda

答えて

0

私の推測では、あなたがstateを変更した後、それは文字列ではなく整数で、スイッチがdefault:に行く理由があるということです。また、メソッドがanyのパラメータ型を受け入れるため、エラーは発生しません。

は、あなたがmalformated入力パラメータについて通知されますので、きれいな方法は、メソッドに整数を渡すとstate: numberにパラメータ宣言を変更することになるが、switch(parseInt(state)):

をチェックしてください。

+0

それは働いた!どうもありがとうございます!!! –

関連する問題