2017-11-14 2 views
0

価格を通貨形式で注文する際に問題が発生しています。AngularJS並べ替え可能な注文価格の問題

var myApp = angular.module("myApp", []); 
 

 
myApp.factory("Purchases", function() { 
 
    var Purchases = {}; 
 

 
    Purchases.data = [{ 
 
     date: "10/05/2012", 
 
     text: "1 Lorem ipsum dolor sit amet ipsum dolor", 
 
     price: "£90", 
 
     availability: "1 Available until 10th Dec 2013" 
 
    }, 
 
    { 
 
     date: "24/05/2012", 
 
     text: "2 Lorem ipsum dolor sit amet ipsum dolor", 
 
     price: "£9.5", 
 
     availability: "2 Available until 10th Dec 2013" 
 
    }, 
 
    { 
 
     date: "20/05/2012", 
 
     text: "3 Lorem ipsum dolor sit amet ipsum dolor", 
 
     price: "£10", 
 
     availability: "3 Available until 10th Dec 2013" 
 
    } 
 
    ]; 
 
    return Purchases; 
 
}); 
 

 
function PurchasesCtrl($scope, Purchases) { 
 
    $scope.purchases = Purchases; 
 
    $scope.sort = { 
 
    column: '', 
 
    descending: false 
 
    }; 
 
    $scope.changeSorting = function(column) { 
 

 
    var sort = $scope.sort; 
 

 
    if (sort.column == column) { 
 
     sort.descending = !sort.descending; 
 
    } else { 
 
     sort.column = column; 
 
     sort.descending = false; 
 
    } 
 
    }; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp"> 
 
    <div ng-controller="PurchasesCtrl"> 
 
    <h2>Purchases:</h2> 
 
    <table cellspacing="0"> 
 
     <tr class="first"> 
 
     <th class="first" ng-click="changeSorting('date')">Date</th> 
 
     <th ng-click="changeSorting('text')">Description</th> 
 
     <th ng-click="changeSorting('price')">Amount</th> 
 
     <th ng-click="changeSorting('availability')">Status</th> 
 
     </tr> 
 
     <tr ng-repeat="purchase in purchases.data|orderBy:sort.column:sort.descending"> 
 
     <td class="first">{{purchase.date}}</td> 
 
     <td>{{purchase.text}}</td> 
 
     <td>{{purchase.price}}</td> 
 
     <td>{{purchase.availability}}</td> 
 
     </tr> 
 
    </table> 
 
    </div> 
 
</div>

発行順序:$9.5 > $10
順序を修正する方法はありますか?

+0

ここにコードを含めて質問を編集してください。外部リンクは時間とともに変化したり消えたりする可能性があり、将来は質問が意味をなさない可能性があります。また、この質問の中で実行可能なStackSnippetをJSFiddleのような外部サイトを使わずにデモを作ることもできます。 https://stackoverflow.com/help/how-to-ask – ADyson

+0

質問にコピーされたフィドルを参照してください – phuzi

答えて

0

はい、このフィドルを確認してください:http://jsfiddle.net/2u3wn91z/1/。 あなたは(priceの最初の文字として)currencyを分離し、その後priceからcurrencyを削除する必要があるので、あなたは、ないstring秒、number Sを比較したい):

Purchases.data = Purchases.data.map(function (purchase) { 
    purchase.currency = purchase.price.charAt(0); 
    purchase.price = Number(purchase.price.substr(1)); 
    return purchase; 
    }); 
    $scope.purchases = Purchases; 

あなたは通貨から離れ価格を持っているときは、することができます別に表示してください:

<td>{{purchase.currency}}{{purchase.price}}</td> 
関連する問題