【发布时间】:2013-12-14 00:55:28
【问题描述】:
几个月来,我一直在使用 Breezejs 运行一个项目,直到我更新到最新版本(“1.4.5”)并且元数据导入在 IE8 上停止工作时,一切都运行良好。
我之前使用的是“1.3.6”版本,它在 IE8 中运行良好(我已按照建议添加了 es5-shims 和 json2 库,以支持“旧版”浏览器)。
但是,自从我升级到最新版本后,在初始化新实体管理器并发出第一个查询时,它返回以下错误:
Unable to either parse or import metadata: [Object expected]
在 ctor.prototype.fetchMetadata 方法中。
追查这个问题,我了解到它无法运行 getES5PropDescriptor 方法在客户端为使用自定义构造函数扩展的实体添加属性(如在微风文档here):
function getES5PropDescriptor(proto, propName) {
if (proto.hasOwnProperty(propName)) {
//next line throws the error!!!
return Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(proto, propName);
} else {
var nextProto = Object.getPrototypeOf(proto);
return nextProto ? getES5PropDescriptor(nextProto, propName) : null;
}
}
这是 Breezejs 中的一个已知问题吗?有关如何使用最新的 Breezejs 版本使其在 IE8 上再次运行的任何提示?
我也尝试过 this post 的建议(基本上是注释掉 isolateES5Props 方法的调用),但无济于事。
非常感谢您的宝贵支持!
【问题讨论】:
标签: breeze