각도의 ng-repeat
을 groupBy
및 orderBy
으로 사용 중입니다. 내가 얻으려고하는 것은 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의 type
이 number
수 있도록 내가 billRaw을 수정 한
으로 정렬됩니다. 하지만 여전히
_.forEach($scope.billRaw, function(value,key) {
value.SeatNo = parseInt(value.SeatNo);
});
그런 식으로 문자열 값이므로 주문하십시오. 당신이 말한 것처럼 int로 변환해야합니다. parseInt가 작동하지 않는 이유는 무엇입니까? – Zaki
'orderBy'의'parseInt'는 효과가 없으며'groupBy'의'parseInt'는 배열 인덱스 0, 1, 2, 3을 제공합니다. –
어떻게 해석합니까, 수행하기 전에 실제 json 배열에서 수행해야합니다 주문. '가 있지만 작동하지 않습니다 , – Zaki