1

有没有办法在 Breeze JS 中执行无模式复杂属性?

我有一个用例,我需要存储特定于客户的查找表。这些查找表可以有任意数量的列和行。我首选的解决方案是将它们存储为以下形式的 JSON 对象:

{'columns':['one', 'two', 'three'], 'rows':[{'one': 1, 'two': 2, 'three', 3}]}

在后端这不是问题,我可以将它作为 JSON 对象存储在 postgres 中。我只是不知道如何轻而易举地处理这个对象,而不是对其进行任何处理。

有没有办法在 Breeze JS 中执行无模式复杂属性?

4

1 回答 1

4

如果您创建一个 DataType 为“未定义”的属性,Breeze 将序列化数据而不尝试转换或强制它。

     var et = new EntityType({
        shortName: "Foo",
        namespace: "Sample.Models"
    });
    et.addProperty( new DataProperty({
        name: "columns",
        dataType: DataType.Undefined
    }));

请注意,从 Breeze 1.4.0 开始,我们现在还支持非标量数据属性,因此您还可以执行以下操作。

  et.addProperty( new DataProperty({
        name: "columns",
        dataType: DataType.String
        isScalar: false
    }));

此外,未显示,您实际上可以创建复杂类型数组的属性。有关此类元数据的示例,请参阅 Breeze Node/Mongo 示例。(这可以用于您的“行”属性)。

于 2013-09-05T17:22:38.333 回答