2015-12-22 36 views
0

在角度我試圖使用角度過濾器來替換一些字符串與它可以找到的另一個詞,我已經嘗試了很多例子,我認爲我的代碼只是缺少的東西,但我無法弄清楚。這裏是我的代碼:錯誤:text.replace不是angularjs過濾器中的函數,如何解決這個問題?

這裏是我的app.js

app.filter('filterStatus', function() { 
    return function (text) { 

     if(text == 1){ 
      return str = text.replace(/1/g, "Waiting"); 
     } else if (text == 2) { 
      return str = text.replace(/2/g, "On Process"); 
     } else if (text == 3) { 
      return str = text.replace(/3/g, "On The Way"); 
     } else if (text == 4) { 
      return str = text.replace(/4/g, "Delivered"); 
     } else if (text == 5) { 
      return str = text.replace(/5/g, "Expired"); 
     } 
    }; 
}); 

我要替換 「1」 與 「等待」 這個詞,這是我的html頁面

  <tr ng-repeat-start="siheaders in singleID.siheader"> 
       <td>{{siheaders.status | filterStatus}}</td> 
      </tr> 

,但它給我這些「錯誤:text.replace是不是一個函數」錯誤,當我使用螢火蟲調試它,我在這裏錯過了什麼?

+0

'siheaders.status'是一個字符串嗎?在我看來,你期待着一個號碼。 – MinusFour

+0

該變量是否包含字符串或數字? 'replace()'是一個字符串方法。 'console.log(typeof text)'顯示了什麼?我注意到你的if/else結構將變量與數字進行比較,而不是字符串(儘管'=='將爲'1'== 1'返回true)。 – nnnnnn

回答

1

真的沒有必要做任何字符串替換。

app.filter('filterStatus', function() { 
    return function (text) { 
     if(text == 1){ 
      return "Waiting"; 
     } else if (text == 2) { 
      return "On Process"; 
     } else if (text == 3) { 
      return "On The Way"; 
     } else if (text == 4) { 
      return "Delivered"; 
     } else if (text == 5) { 
      return "Expired"; 
     } 
    }; 
} 
+0

或者創建一個地圖避免if elses –

+0

謝謝@minusfour這就是最好的 –

相關問題