你如何强制Breeze元数据生成的属性是camelCase?

时间:2013-01-18 19:42:01

标签: breeze

我想更改Breeze的序列化程序,以便我的javascript对象是camelCased。在文档中,它说这可以做,但说它应该被解释。

  

您可以更改格式化程序的配置[待解释]但是如果   你这样做,你有责任确保你的改变   与Breeze的期望没有冲突。

有谁知道如何做到这一点?

1 个答案:

答案 0 :(得分:3)

最简单的是简单地调用

breeze.NamingConvention.camelCase.setAsDefault();

在第一次查询之前(或在创建第一个metaData商店之前)。

有更多信息hereherehere

内置的 NamingConvention.camelCase 是一个非常简单的驼峰套管实现,所以你也可以编写自己的命名约定:

var namingConv = new breeze.NamingConvention({
    serverPropertyNameToClient: function (serverPropertyName, prop) {
        if (prop && prop.isDataProperty && prop.dataType === DataType.Boolean) {
            return "is" + serverPropertyName;
        } else {
            return serverPropertyName.substr(0, 1).toLowerCase() + serverPropertyName.substr(1);
        }
    },
    clientPropertyNameToServer: function (clientPropertyName, prop) {
        if (prop && prop.isDataProperty && prop.dataType === DataType.Boolean) {
            return clientPropertyName.substr(2);
        } else {
            return clientPropertyName.substr(0, 1).toUpperCase() + clientPropertyName.substr(1);
        }
    }            
});
namingConv.setAsDefault();