2017-11-29 1 views
1

나는이 테이블에 하나의 API 히트가있는 모든 행을 포함하는 datatable을 구현하고있다. 그리고 자바 스크립트 코드에 조건을 넣고 싶습니다. 자바 스크립트를 통해 생성되는 데이터 테이블. 내 코드 샘플을 공유하고 있습니다.넣는 방법 자바 스크립트에서 데이터 테이블의 배열에 조건이 있다면?

$scope.standardOptions = DTOptionsBuilder 
    .fromFnPromise(R.all('----api call--').getList()) 
    .withDOM("<'dt-toolbar'<'col-xs-12 col-sm-6'f><'col-sm-6 col-xs-12 hidden-xs'l>r>" + 
    "t" + 
    "<'dt-toolbar-footer'<'col-sm-6 col-xs-12 hidden-xs'i><'col-xs-12 col-sm-6'p>>") 
    .withBootstrap(); 

$scope.standardColumns = [    
    DTColumnBuilder.newColumn('flightNo').withOption('defaultContent', '-'), 
    DTColumnBuilder.newColumn('eta').renderWith(dataRendererETA).withOption('defaultContent', '-'), 
    DTColumnBuilder.newColumn('etd').renderWith(dataRendererETA).withOption('defaultContent', '-'),   
]; 

API 호출 데이터는

{ 
    "_id": "101-87450458_2016_SEP", 
    "flightNo": "087", 
    "eta": { 
      "$date": 1511868720000 
      }, 
    "etd": { 
     "$date": 1511875800000 
     }, 
    } 

나는 두 번째와 세 번째 DtColumnBuilder의 경우 조건을 넣고 싶다. 어느 쪽의 eta도 인쇄하거나 etd해야하는 경우.

나는 datatables에서 새롭다. 어떻게 조건을 넣을 수 있습니다.

DTColumnBuilder.newColumn ('ETA') renderWith (dataRendererETA) .withOption ('defaultContent' '-')., DTColumnBuilder.newColumn ('ETD') renderWith (dataRendererETA) .withOption ('. defaultContent ', '- '),

한 번에 하나씩 표시하고 싶습니다.

$scope.standardColumns = [    
    DTColumnBuilder.newColumn('flightNo').withOption('defaultContent', '-') 
] 
if (condition) { 
    $scope.standardColumns.push(DTColumnBuilder.newColumn('eta').renderWith(dataRendererETA).withOption('defaultContent', '-')) 
} else { 
    $scope.standardColumns.push(DTColumnBuilder.newColumn('etd').renderWith(dataRendererETA).withOption('defaultContent', '-')) 
} 

또는 당신은 $watch 예를 들면, 모두를 생성하고 숨길/조건에 따라 dtInstance를 사용하여 열 중 하나를 표시 할 수 있습니다 :

enter image description here

+0

if 문에 어떤 문제가 있습니까? 배열의 끝 부분에 요소를 넣거나 밀어 넣기 위해 요소를 밀어 넣으려면 요소의 앞쪽에 요소를 밀어 넣고 조건부로 배열을 끝내려면 밀어 넣기를 사용합니다. 문제를 실제로는 명확히하지 않습니다. – shaunhusain

+0

'if'는 무엇입니까?, 조건이 정확히 무엇입니까? 런타임 중에 어떻게 든 변경되는 동적 범위 값입니까? – davidkonrad

답변

1

당신은 초기에 그것을 할 수

$scope.$watch(‘condition’, function(newVal, oldVal) { 
    if (newVal) { 
    $scope.dtInstance.DataTable.column(1).visible(true) 
    $scope.dtInstance.DataTable.column(2).visible(false) 
    } else { 
    $scope.dtInstance.DataTable.column(1).visible(false) 
    $scope.dtInstance.DataTable.column(2).visible(true) 
    } 
}); 
+0

답변 해 주셔서 감사합니다. 이 데이터 테이블은 1000 레코드 만 보여줍니다. API에서 1000 개가 넘는 레코드가 있으면 현재 데이터가 표시됩니다. 어떻게 테이블에서 1000 개 이상의 레코드를 얻을 수 있습니까? –

+0

??? 행 수에 대한 DataTables에는 제한이 없습니다. 서버 측 또는'R' 서비스에 제한이있을 수 있습니다. 나는 정말로 도움이되지 않는다. – davidkonrad

+0

단일 페이지 응용 프로그램에서 사용하고 있습니다. mongodb를 사용하여. 그래서 내가 무엇을 할 수 있니? –

관련 문제