breezejs - 无模式复杂属性

时间:2013-09-05 09:48:53

标签: json postgresql breeze

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

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

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

在后端这不是问题,我可以将它存储为postgres中的JSON对象。我只是无法弄清楚如何让微风按原样处理这个对象,而不是对它进行任何处理。

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

1 个答案:

答案 0 :(得分: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
    }));

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