我正在尝试使用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。有人建议使用此处http://olingo.apache.org/doc/javascript/中的odatajs-4.0.0-beta-01.min.js
,但datajs
源代码中明确依赖breeze.debug.js
。我试图在我的页面中包含odatajs-4.0.0-beta-01.min.js
脚本,但它没有帮助。
有人知道如何让Breeze.js与OData v4服务一起使用吗?
答案 0 :(得分:1)
由于MS OData库存在许多问题,Breeze尚未与OData 4.0一起使用。他们知道这些问题,正在计划一个很快修复它们的版本......我们正在与他们合作,并会在发生这种情况时尝试发布我们的OData 4.0支持。我们还将使用'olingo'datajs库来支持OData 4.0。
请注意,您不需要OData来使用breeze(特别是使用ASP.NET WebApi2)。请参阅:http://www.getbreezenow.com/documentation/aspnet-web-api。如果您不这样做,您实际上会获得更多功能和更好的效果:请参阅http://www.getbreezenow.com/documentation/odata-vs-webapi