有没有办法在Breeze JS中进行无模式复杂属性?
我有一个用例,我需要存储客户特定的查找表。这些查找表可以包含任意数量的列和行。我首选的解决方案是将它们存储为以下形式的JSON对象:
{'columns':['one','two','three'],'rows':[{'one':1,'two':2,'three',3}]}
在后端这不是问题,我可以将它存储为postgres中的JSON对象。我只是无法弄清楚如何让微风按原样处理这个对象,而不是对它进行任何处理。
有没有办法在Breeze JS中进行无模式复杂属性?
答案 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示例。 (这可以用于'行'属性)。