Breeze.js OData v4错误

时间:2015-02-16 09:08:20

标签: javascript breeze datajs

我正在尝试使用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服务一起使用吗?

1 个答案:

答案 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