如何将 If 条件放入 JavaScript 中数据 table 的数组中?
How to put If condition in array for data table in JavaScript?
我正在实施数据table,这个table 包含所有行,只有一个API 命中。我想在 java 脚本代码中加入条件。通过 java 脚本创建数据 table。我正在分享我的代码示例。
$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 中放置 if 条件。如果 eta 应该打印或 etd.
我是数据新手table。我怎样才能把条件。
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', '-') )
}
或者您可以根据条件使用 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)
}
});
我正在实施数据table,这个table 包含所有行,只有一个API 命中。我想在 java 脚本代码中加入条件。通过 java 脚本创建数据 table。我正在分享我的代码示例。
$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 中放置 if 条件。如果 eta 应该打印或 etd.
我是数据新手table。我怎样才能把条件。
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', '-') )
}
或者您可以根据条件使用 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)
}
});