【问题标题】:KendoUI - grid - template not getting dataKendoUI - 网格 - 模板没有获取数据
【发布时间】:2014-11-03 09:08:12
【问题描述】:

KenfoUI 网格有问题。我从服务器端发送 JSON 数据:

{
"data": [{
    "process": {
        "id": "myProcess2:1:1206",
            "description": null,
            "name": "My process 2",
            "version": 1
    },
        "id": 42066,
        "description": "unisono-rest-evenem",
        "type": {
        "id": 2,
            "translation": "Faktura sprzedażowa",
            "name": "salesInvoice"
    },
        "triger": {
        "id": 42048,
            "name": "Document recognized trigger",
            "code": "ocrEndTrigger",
            "type": "DOCUMENT_RECOGNIZED"
    }
}, {
    "process": {
        "id": "myProcess2:1:1206",
            "description": null,
            "name": "My process 2",
            "version": 1
    },
        "id": 42067,
        "description": "6756757",
        "type": {
        "id": 5,
            "translation": "Słownik stawek VAT",
            "name": "dictVatRates"
    },
        "triger": {
        "id": 42048,
            "name": "Document recognized trigger",
            "code": "ocrEndTrigger",
            "type": "DOCUMENT_RECOGNIZED"
    }
}, {
    "process": {
        "id": "myProcess2:1:1206",
            "description": null,
            "name": "My process 2",
            "version": 1
    },
        "id": 42068,
        "description": "56546546",
        "type": {
        "id": 1,
            "translation": "Faktura",
            "name": "invoice"
    },
        "triger": {
        "id": 42047,
            "name": "New document trigger",
            "code": "createDocument",
            "type": "CREATE_DOCUMENT"
    }
}, {
    "process": {
        "id": "myProcess2:1:1206",
            "description": null,
            "name": "My process 2",
            "version": 1
    },
        "id": 42069,
        "description": "swswsws",
        "type": {
        "id": 5,
            "translation": "Słownik stawek VAT",
            "name": "dictVatRates"
    },
        "triger": {
        "id": 42047,
            "name": "New document trigger",
            "code": "createDocument",
            "type": "CREATE_DOCUMENT"
    }
}],
    "total": 4
}

我在 gird 中定义了如下列:

    columns: [{
    field: "process",
    title: "Nazwa procesu",
    editor: staticEditors.processEditor,
        "template": function (data) {
        if (data.process != null && data.process != undefined) {
            return "<span class='gridText' title='" + data.process.name + "'>" + data.process.name + "</span>"
        } else {
            return "<span></span>"
        }
    }
}, {
    field: "type",
    title: "Typ dokumentu",
    editor: $scope.typeEditor,
        "template": function (data) {
        if (data.type != null && data.type != undefined) {
            return "<span class='gridText' title='" + data.type.translation + "'>" + data.type.translation + "</span>"
        } else {
            return "<span></span>"
        }
    }
}, {
    field: "triger",
    title: "Wyzwalacz",
    editor: staticEditors.triggerEditor,
        "template": function (data) {
        if (data.triger != null && data.triger != undefined) {
            return "<span class='gridText' title='" + data.triger.name + "'>" + data.triger.name + "</span>"
        } else {
            return "<span></span>"
        }
    }
}, {
    field: "description",
    title: "Description",
        "template": function (data) {
        if (data.description != null && data.description != undefined) {
            return "<span class='gridText' title='" + data.description + "'>" + data.description + "</span>"
        } else {
            return "<span></span>"
        }
    }
}

模板函数存在问题,因为数据对象没有所有数据。我注意到嵌套数据存在问题(类型、触发器、进程等字段具有 null 或字符串(“[object Object]”)值。)

我该如何解决这个问题?

【问题讨论】:

标签: javascript angularjs kendo-ui kendo-grid


【解决方案1】:

我发现了问题。 我将 schema.model.field 定义为数字(字符串)。当我删除它时,一切正常。

【讨论】:

    【解决方案2】:

    模板不是列中的字符串,

    试试这样,

    {
        field: "triger",
        title: "Wyzwalacz",
        editor: staticEditors.triggerEditor,
        template: function (data) {
            if (data.triger != null && data.triger != undefined) {
                return "<span class='gridText' title='" + data.triger.name + "'>" + data.triger.name + "</span>"
        } else {
            return "<span></span>"
        }
    }
    

    删除"template" 并执行此操作template 我认为这解决了您的问题。

    【讨论】:

    • 它没有帮助。我认为这两种可能性之间没有区别。问题是,模板函数正在工作,整个数据来自服务器(我在 schema.parse 函数中检查了它)但在数据对象(在模板函数中)应用程序中看不到嵌套对象。
    • template"template" 在 JavaScript 中是相同的。属性名称周围的引号没有任何区别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多