如何强制将Breeze元数据生成的属性设置为camelCase?

如何强制将Breeze元数据生成的属性设置为camelCase?,breeze,Breeze,我想更改Breeze的序列化程序,以便将我的javascript对象转换为大小写。在文件中,它说这是可以做到的,但说这是要解释的 您可以更改格式化程序的配置[待解释],但如果 你这样做,你有责任确保你的改变 与预期不冲突 有人知道怎么做吗?最简单的方法就是打电话 breeze.NamingConvention.camelCase.setAsDefault(); 在第一次查询之前(或在创建第一个元数据存储之前) 有更多的信息,并且 内置的命名约定。camelCase是一个非常简单的camel外壳

我想更改Breeze的序列化程序,以便将我的javascript对象转换为大小写。在文件中,它说这是可以做到的,但说这是要解释的

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


有人知道怎么做吗?

最简单的方法就是打电话

breeze.NamingConvention.camelCase.setAsDefault();
在第一次查询之前(或在创建第一个元数据存储之前)

有更多的信息,并且

内置的命名约定。camelCase是一个非常简单的camel外壳实现,因此您也可以编写自己的命名约定,如下所示:

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();

我使用这个设置。虽然我个人更喜欢这是默认的框外设置,但我可以设置它。我也使用它。:。。。但对于breeze产品,其基本原理是满足“最小意外原则”,因此,默认情况下,服务器上的属性名称与客户端上的属性名称相匹配。请阅读文档的第页中的所有内容。这有待解释,但您不会。。。并且不应为此特定目的更改格式化程序的配置。。。或者以任何与Breeze客户期望相冲突的方式。请参见下面的答案,了解您寻求的替代方案