[英]Sorting / orderby ascending on basis of two variable in angularjs
我有一個條件,我需要根據兩個值以升序對列表進行排序。
首先根據SCHEDSTART,如果可用,則為空白,然后使用WONUM
帶有SCHEDSTART的div應該在頂部。
我寫的代碼不起作用:
代碼1:HTML:
<ion-item ng-repeat="wo in vm.workOrders | orderBy : dynamicOrder>
控制器:
function dynamicOrder(wo){
if(wo.json.SCHEDSTART){
return wo.json.SCHEDSTART;
}else{
return wo.json.WONUM;
}
}
代碼2:
<ion-item ng-repeat="wo in vm.workOrders | orderBy : ['json.SCHEDSTART','json.WONUM']>
如果這是最好的方法,請確定,但我的建議是在兩個ion-item
標簽上分別創建一個ng-if
。 例如
<ion-item ng-if="SCHEDSTART" ng-repeat="wo in vm.workOrders | orderBy : SCHEDSTART>
和
<ion-item ng-if="!SCHEDSTART" ng-repeat="wo in vm.workOrders | orderBy : WONUM>
ng-if
對true / false和true / falsy進行操作,因此如果SCHEDSTART為truthy
,或者換句話說具有內容,那么我顯示的第一個html標簽將填充您的DOM。
如果SCHEDSTART為falsy
,或換句話說為0 (zero)
, "" (empty string)
, null
, undefined
或NaN (Not a number)
則第一個標簽在DOM中將如下所示
<!--ng-if="SCHEDSTART"-->
現在,如果您要更加確定該功能是否有效,可以創建一個專門用於指示SCHEDSTART是否正確的變量。 使用您提供的代碼,我將這樣更改
var schedStartHasData;
function dynamicOrder(wo){
if(wo.json.SCHEDSTART){
schedStartHasData = true;
}else{
schedStartHasData = false;
}
}
您視圖中的兩個標簽看起來像這樣
<ion-item ng-if="schedStartHasData " ng-repeat="wo in vm.workOrders | orderBy : SCHEDSTART>
和
<ion-item ng-if="!schedStartHasData" ng-repeat="wo in vm.workOrders | orderBy : WONUM>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.