【发布时间】:2016-09-06 15:38:58
【问题描述】:
我不知道什么是使 angular 2、BreezeJs 和 OData 一起工作的正确方法
我遵循了这个 npm 包中的说明:https://www.npmjs.com/package/breeze-bridge-angular2
我还添加了指向 OData 库的链接。
我初始化 OData 适配器的代码如下所示:
config.initializeAdapterInstance('dataService', 'webApiOData', true);
this._em = new EntityManager('http://localhost:7248/api');
this._em.fetchMetadata((schema) => {
console.log('schema', schema);
var collectionPointType = this._em.metadataStore.getEntityType("ClientBrowse");
(<any>collectionPointType).setProperties({ autoGeneratedKeyType: AutoGeneratedKeyType.Identity });
});
但不幸的是它没有用。
我发现,breezejs 正在尝试解析函数 __requireLibCore(libName) 中的库 OData,它在 global.window 中查找,但此变量未定义。
我不确定 global.window 是如何初始化的,但似乎它应该链接到全局窗口对象。我猜由于某些角度 2 隔离,它无法直接访问窗口。
我该如何克服这个问题?肯定的解决方案之一是制作猴子补丁,但我怀疑这是要走的路。
【问题讨论】:
-
我也有同样的问题。我已经导入了datajs。仍然全局对象看起来像一个空对象.. 有人可以点亮我如何确保对全局的正确值?