2016-04-10 13 views
1

私はAngularJS UIグリッドを使用しており、価格をフィルタリングしようとしています。フィルタリングは、10進数の後ろの0以外の数字のものであれば問題ありません。セルの​​@ドキュメントごとに 'numberstr' 'type' 属性にAngularJS UIグリッド、0.00円で通貨をフィルタする方法

$scope.GridOptions = { 
      enableFiltering: true, 
      rowEditWaitInterval: -1, 
      multiSelect: true, 
      enableColumnMenus: false, 
      columnDefs: [ 
       { name: 'Name', field: 'Item', width: '15%' }, 
       { name: 'Price', field: 'Price', type: 'number', cellFilter: 'currency', width: '6%' }, 
       { name: 'Current Price', field: 'CurrentPrice', type: 'number', cellFilter: 'number: 2', width: '12%' } 
      ] 

2 after decimal0 after decimal

+1

angs jsには通貨フィルタが組み込まれています。テンプレートでは、{{item_price |あなたが必要としている場合はng-repeatの内側にあります。 – Peege151

+0

通貨として読んでいますが、「.0」を読むものはまだ除外しています。 – Thecor

答えて

1

変更フィールドタイプ

+0

価格が「.0」(つまり、0.00または10.05)のものはまだ失われています。小数点をキー入力すると、小数点の後ろに0があるものは除外されます。 – Thecor

+0

-_-私は問題の原因を発見しました。私が引っ張っているCSVは、末尾の0を切り捨てます(したがって、0.00または10.00として来るものは、単に0または10になります)。私は最後に.00を追加するためにAngularJSを使用していますが、フィルタリングすると、UIグリッドはオブジェクトに対して行ったすべてのグラフィカルな変更を無視します。助けてくれてありがとう。 – Thecor

+0

したがって、jsは文字列として解釈します。 parsefloat()関数で常に小数点を追加することもできます –

0

私が取得するためにあまりにも多くのフープを介してジャンプしなければなりませんでした見栄えの良い通貨列ですが、今後これが考慮されることを願っています。これは私にとって最高の働いた:

JSを - 列定義にcellFilter:number:2cellClass:'currency'を追加します。

myGrid.columnDefs = [{ 
    field: "Sale", 
    cellFilter: 'number:2', 
    cellClass:'currency' 
}] 

CSSを - あなたのCSSにこれらの二つのスタイル定義を追加します。

.currency{ 
    text-align:right; 
} 
.currency .ui-grid-cell-contents:before{ 
    content: '$'; 
    float: left; 
} 

最終結果:

​​

あなたは私の元の答えhereでそれについての詳細を読むことができます。

関連する問題