使用kendo ui grid,其属性以'@'开头

时间:2016-11-22 10:51:32

标签: json xml kendo-ui

我将XML转换为json,因此json文件在属性前面有符号“@”。例如<xml id=1></xml>,我得到{@ id = 1}。

通过这种结构,我创建了一些数据,例如

[{@action:"include", @defaultValue:"", @expression:"", @format:"",@isPrimary:"True"},{@action:"include", @defaultValue:"", @expression:"", @format:"",@isPrimary:"True"},{@action:"include", @defaultValue:"", @expression:"", @format:"",@isPrimary:"True"}]

现在我想用kendo网格实现这个,但我很少被投入。

   model: {
                fields: {
                    Action: {
                        field: '@action',
                    },
                    DefaultValue: {
                        field: '@defaultValue',
                    },
                    Format: {
                        field: '@format',
                    },
                    Expression: {
                        field: '@expression',
                    }
                }
            }

和我的专栏

   columns: [{
        field: "Action",
        title: "Action",
    }, {
        field: "DefaultValue",
        title: "Default Value",
    }, {
        field: "Format",
        title: "Format",
    }, {
        field: "Expression",
        title: "Expression",
    }]

但不起作用,我得到“SyntaxError:无效或意外的令牌”

1 个答案:

答案 0 :(得分:1)

  1. 您的模型定义无效语法... model.fields配置似乎没有fieldName.field选项(http://docs.telerik.com/kendo-ui/api/javascript/data/model#methods-Model.define)。
  2. “@”实际上不是javascript名称中的有效字符,除非你在它周围添加引号,你可以轻松地使用你控制的代码,就像你的数据数组文字一样...但是kendo没有这样做所以它最终试图引用像d.@action这样的东西,这是一个语法错误。所以,你必须通过使用格式来“欺骗”kendo使用方括号表示法和引用的字段名称:

    “[ '@动作']”

  3. 定义字段选项时。这为您提供了一个引用的字段名称以允许@并且它使kendo在访问字段时使用括号表示法而不是点符号

    以下是它的工作演示:http://dojo.telerik.com/@Stephen/uPiGE

    它演示了字段名称所需的格式和模型定义的语法。

    但是,说了这么多.....你真的需要@在你的字段名称中吗?