Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中,如何在数组中为数据表设置If条件?_Javascript_Angularjs_Datatables_Angular Datatables - Fatal编程技术网

在JavaScript中,如何在数组中为数据表设置If条件?

在JavaScript中,如何在数组中为数据表设置If条件?,javascript,angularjs,datatables,angular-datatables,Javascript,Angularjs,Datatables,Angular Datatables,我正在实现datatable这个表包含所有行,只需要一次API命中。我想在java脚本代码中加入条件。通过java脚本创建数据表。我正在分享我的代码示例 $scope.standardOptions = DTOptionsBuilder .fromFnPromise(R.all('----api call--').getList()) .withDOM("<'dt-toolbar'<'col-xs-12 col-sm-6'f><'col-sm-6 col-xs

我正在实现datatable这个表包含所有行,只需要一次API命中。我想在java脚本代码中加入条件。通过java脚本创建数据表。我正在分享我的代码示例

$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', '-'),        
];
我想把if条件放在第二个和第三个DtColumnBuilder中。如果eta打印或etd

我是数据表新手。我怎样才能把条件

DTColumnBuilder.newColumn('eta').renderWith(DataRenderEta).withOption('defaultContent'), '-'), DTColumnBuilder.newColumn('etd').renderWith(DataRenderEta).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', '-') )
}
或者,您可以根据条件使用
dtInstance
创建这两个列并隐藏/显示其中一列,例如在
$watch
中:

$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)
  }
});

if语句有什么问题?如果需要,可以使用unshift将元素推入数组的前端,或者使用push将元素置于数组的末尾,并使用if有条件地执行此操作。。。不清楚问题到底是什么。如果,那么是什么?我的意思是确切的条件是什么?它是一个动态范围值,在运行时会发生变化吗?谢谢你的回答。此数据表仅显示1000条记录。如果在我的api中有超过1000条记录,那么它现在将显示数据。如何在表中实现1000条以上的记录。???数据表中的行数没有限制,也许您在服务器端或
R
服务中有一些限制。我真的帮不上忙。我正在使用单页应用程序。mongodb使用。那我该怎么办?你能检查一下吗。。
$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)
  }
});