Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 将数据源绑定到Kendo网格,其中JSON中可能不存在某些字段_Javascript_Kendo Ui - Fatal编程技术网

Javascript 将数据源绑定到Kendo网格,其中JSON中可能不存在某些字段

Javascript 将数据源绑定到Kendo网格,其中JSON中可能不存在某些字段,javascript,kendo-ui,Javascript,Kendo Ui,我有一个剑道网格,数据与来自webApi的结果绑定。下面是代码的快照。这用于渲染剑道网格。现在,在JSON结果中,可能存在字段“nominalVoltage”不存在的情况。换句话说,有些结果可能返回字段,有些可能不返回。如果未返回该字段,代码将失败。我将得到错误,就像字段未定义一样。 在加载剑道网格控件时,是否仍可以处理此问题 $scope.columns = [{ field: 'businessCode', title: 'Business Code', width:

我有一个剑道网格,数据与来自webApi的结果绑定。下面是代码的快照。这用于渲染剑道网格。现在,在JSON结果中,可能存在字段“nominalVoltage”不存在的情况。换句话说,有些结果可能返回字段,有些可能不返回。如果未返回该字段,代码将失败。我将得到错误,就像字段未定义一样。 在加载剑道网格控件时,是否仍可以处理此问题

$scope.columns = [{
    field: 'businessCode',
    title: 'Business Code',
    width: '120px',
}, {
    field: 'nominalVoltage',
    title: 'Nominal Voltage',
    width: '120px'
}];

var options = {
    dataSource: {
        data: data
    },
    width: '100%',
    resizable: true,
    sortable: true,
    scrollable: true,
    reorderable: true,
    dataBinding: function (e) {
        var pageSizes = e.sender.dataSource.pageSize() || 20;
    },
    pageable: {
        pageSize: pageSize,
        pageSizes: [5, 10, 20, 50, 100, 200],
        refresh: true
    },
    columns: $scope.columns
};
您可以为数据设置架构

schema: {
    model: {
        businessCode: { type: "string" },
        nominalVoltage: { type: "number" },
    }
}

可以对需要验证的网格列应用条件属性:

field: 'nominalVoltage',
title: 'Nominal Voltage',
width: '120px',
template: "#if(nominalVoltage) {#:nominalVoltage#} else{'Oops nothing found'}#"
或者将模板作为函数

template: validateNominalVoltage

function validateNominalVoltage(dataItem) {
    return dataItem.nominalVoltage ? dataItem.nominalVoltage : 'Oops nothing found';
}

通常,此方法用于修改数据的显示方式,即使用外部HTML模板以粗体显示内容,但在您的情况下,在显示之前检查nominalVoltage属性是否包含值时,此方法可以很好地工作。

您可以像下面这样定义模板

//field: 'nominalVoltage', // do not include it
template: function(data) {
  return data.nominalVoltage ? data.nominalVoltage : "";
},
title: 'Nominal Voltage',
width: '120px'