Breezejs、angular 2 和 OData
Breezejs, angular 2 and OData
我无法弄清楚什么是使 angular 2、BreezeJs 和 OData 协同工作的正确方法
我遵循了这个 npm 包的说明:https://www.npmjs.com/package/breeze-bridge-angular2
我还添加了 link 到 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 是如何初始化的,但似乎应该是 link 到全局 window 对象。我猜是因为某些 angular 2 隔离,它无法直接访问 window。
我该如何克服这个问题?肯定的解决方案之一是制作猴子补丁,但我怀疑这是可行的方法。
您缺少 datajs 依赖项。 Breeze OData 适配器需要 datajs。
npm install datajs --save
然后将其添加到您的 systemjs.config.js
map: {
...
'datajs': 'npm:datajs'
},
packages: {
...
'datajs': {
main: 'index.js',
defaultExtension: 'js'
}
}
然后将其导入您的应用程序,以便加载。
import { config } from 'breeze-client';
import 'datajs';
我无法弄清楚什么是使 angular 2、BreezeJs 和 OData 协同工作的正确方法
我遵循了这个 npm 包的说明:https://www.npmjs.com/package/breeze-bridge-angular2
我还添加了 link 到 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 是如何初始化的,但似乎应该是 link 到全局 window 对象。我猜是因为某些 angular 2 隔离,它无法直接访问 window。
我该如何克服这个问题?肯定的解决方案之一是制作猴子补丁,但我怀疑这是可行的方法。
您缺少 datajs 依赖项。 Breeze OData 适配器需要 datajs。
npm install datajs --save
然后将其添加到您的 systemjs.config.js
map: {
...
'datajs': 'npm:datajs'
},
packages: {
...
'datajs': {
main: 'index.js',
defaultExtension: 'js'
}
}
然后将其导入您的应用程序,以便加载。
import { config } from 'breeze-client';
import 'datajs';