我们使用breezejs从服务器获取实体和非实体...对于非实体我们想要弄乱返回的对象,特别是我们想要设置他们的原型...在单步执行微风代码之后看起来这样做的最佳位置是MappingContext下面的函数...这里我们可以访问“结果”,这是breeze返回给客户端的对象,我们也可以访问“$ type”属性“节点”。有了这些信息,我们可以通过解析$ type和更新结果来找到一个构造函数,这样结果看起来就像找到的构造函数的一个实例......有没有可以帮助我的拦截点?我的问题是当对象被微风移交时,我无法访问我需要的“node。$ type”属性以便找到构造函数...谢谢
function processAnonType(mc, node) {
// node is guaranteed to be an object by this point, i.e. not a scalar
var keyFn = mc.metadataStore.namingConvention.serverPropertyNameToClient;
var result = {};
__objectForEach(node, function (key, value) {
var newKey = keyFn(key);
var nodeContext = { nodeType: "anonProp", propertyName: newKey };
visitNode(value, mc, nodeContext, result, newKey);
});
return result;
}
答案 0 :(得分:1)
实际上,我认为您可以使用自定义 jsonResultsAdapter 来完成所需操作。请参阅:http://www.getbreezenow.com/documentation/jsonresultsadapters
在visitNode方法中,您可以修改传入的节点'对象或创建一个新对象(通过返回哈希上的'节点'属性)。如果节点不是实体,那么您返回的任何内容都将通过而无需修改到您的客户端。