0

각도의 ng-repeatgroupByorderBy으로 사용 중입니다. 내가 얻으려고하는 것은 SeatNo에 의한 주문입니다. 1, 2, 8, 12 만 각도 나 1, 12, 2주는 무슨, 8각도 ng 반복 주문 및 그룹 주문이 적절하지 않음

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을 수정 한

으로 정렬됩니다. 하지만 여전히

_.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 배열에서 수행해야합니다 주문. '가 있지만 작동하지 않습니다 , – Zaki

답변

0

당신은 숫자에 SeatNos 변환됩니다 컨트롤러에

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

을 실행 시도 할 수 있습니다 작동하지 않습니다. 그럼 잘 작동합니다.

+0

SeatNo의 유형을 number로 변경했습니다. 하지만 여전히 작동하지 않습니다 –

+0

groupby 절을 제거해보십시오 –