0

私は角度のng-repeatgroupByorderByで使用しています。 私が達成しようとしているのは、SeatNoによる注文です。 1、2、8、12が、角度は私が1、12、2で与えるもの、8角度ng-repeat orderByとgroupByが正しく注文されていません

PS:私はSeatNoが文字列であることを知っているとparseIntを試してみましたが、それは動作していないよう

HTML

<tbody ng-if="::!isOnlyAllSeat" ng-repeat="(key, value) in billRaw | groupBy: 'SeatNo' | orderBy: 'SeatNo' track by key"> 
    <tr class="right bg-darkBlue fg-white"> 
    <td colspan="{{::colSpan}}"> Seat {{key==0?"ALL":key}}</td> 
    <td class="right bill-col-5"><span class="label bg-white fg-black place-right">{{value.length}}</span></td> 
    </tr> 
    <tr ng-repeat="item in value | orderBy: 'ClassCode' " class="fg-darkBlue"> 
    <td class="bill-col-1 middle">{{item.ClassCode}}</td> 
    <td class="text-left bill-col-2 middle"> 
     <span class="">{{item.Name}}</span> 
     <div class="note-tag-list" ng-if="item.Options"> 
     <div class="note-tag-item note-tag" ng-repeat="question in item.Options track by question.Question_ID"> 
      <div ng-repeat="option in question.Options track by option.Option_ID"> 
      <a href class="label info note-tag">{{option.Option}} 
       <small class="price-tag" ng-if="option.ActualPrice !== '0.00'">+{{option.ActualPrice | currency}}</small> 
      </a> 
      </div> 
     </div> 
     </div> 
    </td> 
    <td class="text-left bill-col-5 middle"> 
     <div>{{item.ActualPrice | currency}}</div> 
     <div><small ng-if="item.OptionsTotalActualPrice !== 0">+{{item.OptionsTotalActualPrice | currency}} : Add-on </small></div> 
     <div ng-if="item.DiscountAmt>0"><span class="fg-red">({{(getDiscount(item) | currency)}})</span> : {{((item.ActionTypeID == 1)? item.DiscountAmt+'% OFF':item.CodeName)}}</div> 
     <div ng-if="item.ActionTypeID == 1">{{item.CodeName}}</div> 
    </td> 
    </tr> 
</tbody> 

は、ここで私のbillRaw配列です。

注 -それはSeatNo

[ 
{"OrderItemID": "329277", 
    "Name": "Mexican Tacos", 
    "Delivered": "0", 
    "ShortName": "MEXICAN TACOS", 
    "Price": "8.0000", 
    "MenuItemID": "2318", 
    "SeatNo": "1", 
    "SequenceNo": "37", 
    "AlcoholCheck": "0", 
    "OStatusID": "2", 
    "Notes": "", 
    "Options": [], 
    "OptionsTotal": 0, 
    "OptionsTotalActualPrice": 0, 
    "ActualPrice": "8.00", 
    "CodeID": 0, 
    "DiscountAmt": 0, 
    "ActionTypeID": 0, 
    "CodeName": 0, 
    "ReductionType": 0, 
    "PayerSeq": "0", 
    "PriceType_ID": "1", 
    "ParentClassName": "Tacos", 
    "NetPrice": 8, 
    "ExtItem_ID": "J9X79NS28M1ZY", 
    "ExtOrderItem_ID": null, 
    "Code": null 
}, 
{ 
    "OrderItemID": "329278", 
    "Name": "Mexican Tacos", 
    "Delivered": "0", 
    "ShortName": "MEXICAN TACOS", 
    "Price": "8.0000", 
    "MenuItemID": "2318", 
    "SeatNo": "2", 
    "SequenceNo": "38", 
    "AlcoholCheck": "0", 
    "OStatusID": "2", 
    "Notes": "", 
    "Options": [], 
    "OptionsTotal": 0, 
    "OptionsTotalActualPrice": 0, 
    "ActualPrice": "8.00", 
    "CodeID": 0, 
    "DiscountAmt": 0, 
    "ActionTypeID": 0, 
    "CodeName": 0, 
    "ReductionType": 0, 
    "PayerSeq": "0", 
    "PriceType_ID": "1", 
    "ParentClassName": "Tacos", 
    "NetPrice": 8, 
    "ExtItem_ID": "J9X79NS28M1ZY", 
    "ExtOrderItem_ID": null, 
    "Code": null 
}, 
{ 
    "OrderItemID": "329276", 
    "Name": "Mexican Tacos", 
    "Delivered": "0", 
    "ShortName": "MEXICAN TACOS", 
    "Price": "8.0000", 
    "MenuItemID": "2318", 
    "SeatNo": "8", 
    "SequenceNo": "36", 
    "AlcoholCheck": "0", 
    "OStatusID": "2", 
    "Notes": "", 
    "Options": [], 
    "OptionsTotal": 0, 
    "OptionsTotalActualPrice": 0, 
    "ActualPrice": "8.00", 
    "CodeID": 0, 
    "DiscountAmt": 0, 
    "ActionTypeID": 0, 
    "CodeName": 0, 
    "ReductionType": 0, 
    "PayerSeq": "0", 
    "PriceType_ID": "1", 
    "ParentClassName": "Tacos", 
    "NetPrice": 8, 
    "ExtItem_ID": "J9X79NS28M1ZY", 
    "ExtOrderItem_ID": null, 
    "Code": null 
}, 
{ 
    "OrderItemID": "329275", 
    "Name": "Mexican Tacos", 
    "Delivered": "0", 
    "ShortName": "MEXICAN TACOS", 
    "Price": "8.0000", 
    "MenuItemID": "2318", 
    "SeatNo": "12", 
    "SequenceNo": "35", 
    "AlcoholCheck": "0", 
    "OStatusID": "2", 
    "Notes": "", 
    "Options": [], 
    "OptionsTotal": 0, 
    "OptionsTotalActualPrice": 0, 
    "ActualPrice": "8.00", 
    "CodeID": 0, 
    "DiscountAmt": 0, 
    "ActionTypeID": 0, 
    "CodeName": 0, 
    "ReductionType": 0, 
    "PayerSeq": "0", 
    "PriceType_ID": "1", 
    "ParentClassName": "Tacos", 
    "NetPrice": 8, 
    "ExtItem_ID": "J9X79NS28M1ZY", 
    "ExtOrderItem_ID": null, 
    "Code": null 
} 
] 

編集 SeatNoのtypenumberとなるように、私はbillRawを変更した

でソートされます。それはまだあなたは数字にSeatNosを変換するコントローラで

$.each(billRaw, function(i) {billRaw[i].SeatNo = parseInt(billRaw[i].SeatNo)}); 

を実行してみることができます

_.forEach($scope.billRaw, function(value,key) { 
    value.SeatNo = parseInt(value.SeatNo); 
}); 
+1

それはストリング値なのでそれをそのまま注文します。あなたはあなたが言ったようにそれをintに変換する必要があります。 parseIntが機能しないのはなぜですか? – Zaki

+0

'orderBy'の' parseInt'は効果がなく、 'groupBy'の' parseInt'は配列のインデックス0,1,2,3を与えます。 –

+0

これを解析するにはどうすればいいですか?実際のjson配列orderBy。 – Zaki

答えて

0

を動作しません。その後、正常に動作するはずです。

+0

私はSeatNoのタイプをnumberに変更しました。それでも動作しません –

+0

groupby句を削除してみます –

関連する問題