2015-07-10 49 views
1

有人可以幫我搜索格式化的列嗎?使用全局搜索,在智能表示例(以及我的代碼)中,如果我格式化一些列(例如貨幣過濾器),並且原始值爲102,並且我在列上顯示102.00美元,並且用戶輸入102.00,搜索功能沒有找到這個值,導致原始值是102,而不是102.00(帶點和零),我該如何處理它?謝謝處理格式化的列和智能表中的搜索功能

回答

2

我猜你正在使用帶有st-search指令的輸入文本框來過濾使用角度過濾器標記格式的數值列。像這樣?

<table st-table="collection"> 
    <tr> 
     <td>Id</td> 
     <td>Cost</td> 
    </tr> 
    <tr> 
     <td><input st-search="id" type="search"/></td> 
     <td><input st-search="cost" type="search"/></td> 
    </tr> 
    <tr ng-repeat="row in collection"> 
     <td>{{row.id}}</td> 
     <td>{{row.cost | currency}}</td> 
    </tr> 
</table> 

有幾種方法去這個問題:

  • 如果該值僅用於顯示,你可以把它的範圍爲食用前預格式化它。這也將帶來其他好處;當數字有小數時,您將不會遇到貨幣過濾器和可搜索基準值中小數點後第二位四捨五入的問題,則不會對每個摘要循環評估過濾器,從而顯着提高大型和複雜數據集的性能,並且不需要其他更改爲您的代碼,而不是預先格式化該屬性並刪除貨幣過濾器。
  • 您可以選擇實現自己的搜索指令,您可以在將值傳遞到智能表之前對其應用一些邏輯(請參閱下面的plunker中的stNumberRange指令以瞭解如何實現您自己的搜索插件)。
  • 創建自己的過濾器,其中比較邏輯解決您的問題(見指令plunker和查詢的對象與customFilter一起)

http://plnkr.co/edit/Idbc1JNHKylHuX6mNwZ6?p=preview