0

我正在尝试使用 Breeze.js 版本 1.5.3 创建一个简单的 JavaScript 应用程序。它是使用 OData v4 服务。该服务是使用 ASP.NET WebApi 2 创建的。

包含的脚本:

<script src="/js/jquery.min.js"></script>
<script src="/js/underscore.js"></script>
<script src="/js/q.js"></script>
<script src="/js/datajs-1.1.3.js"></script>
<script src="/js/breeze.debug.js"></script>

下面是配置 Breeze 的 EntityManager 的代码:

var serverAddress = "http://localhost:6405/odata/";
breeze.config.initializeAdapterInstances({ dataService: "webApiOData4" });
var manager = new breeze.EntityManager(serverAddress);

代码失败并出现以下错误:Uncaught TypeError: Cannot read property 'oData' of undefined 这是失败的片段breeze.debug.js(大约第 16591 行):

webApiOData4Ctor.prototype.initialize = function () {
    // Aargh... they moved the cheese.
    var datajs = core.requireLib("datajs", "Needed to support remote OData v4 services");
    OData = datajs.V4.oData; // V4 is undefined, so it throws
    OData.json.jsonHandler.recognizeDates = true;
};

我已经搜索datajs-1.1.3.js并没有找到“V4”符号。此外,这个库的作者说它只支持 OData v3。有些人建议使用odatajs-4.0.0-beta-01.min.js这里的http://olingo.apache.org/doc/javascript/datajs ,但在breeze.debug.js源代码中有明显的依赖关系。我试图odatajs-4.0.0-beta-01.min.js在我的页面中包含脚本,但它没有帮助。

有人知道如何让 Breeze.js 与 OData v4 服务一起工作吗?

4

1 回答 1

1

由于 MS OData 库存在许多问题,Breeze 尚未与 OData 4.0 一起使用。他们意识到了这些问题,并计划尽快发布修复这些问题的版本……我们正在与他们合作,并会在发生这种情况时尝试发布我们的 OData 4.0 支持。我们还将使用“olingo”datajs 库来支持 OData 4.0。

请注意,您不需要 OData 来使用微风(尤其是使用 ASP.NET WebApi2)。请参阅:http ://www.getbreezenow.com/documentation/aspnet-web-api 。如果您不这样做,您实际上会获得更多功能和更好的性能:请参阅http://www.getbreezenow.com/documentation/odata-vs -webapi

于 2015-02-16T17:30:17.683 回答