我正在尝试使用Durandal,Breeze和淘汰赛来实现WebApi OData。但我总是低于错误:
无法初始化OData。需要支持远程OData服务
我创建了一个视图模型:
var my = {}; //my namespace
$(function () {
var serverAddress = "/odata/";
breeze.config.initializeAdapterInstances({ dataService: "OData" });
var manager = new breeze.EntityManager(serverAddress);
my.vm = {
customers: ko.observableArray([]),
load: function () {
var query = breeze.EntityQuery.from("Customers");
manager.executeQuery(query, function (data) {
var results = data.results;
$.each(data.results, function (i, c) {
my.vm.customers.push(c);
});
});
}
}
my.vm.load();
ko.applyBindings(my.vm);
});
在BreezWebApiConfig中提到:
public static void RegisterBreezePreStart() {
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "BreezeApi",
routeTemplate: "api/{controller}/{action}"
);
}
并注册了WebApi:
public static void Register(HttpConfiguration config)
{
config.Routes.MapODataRoute("odata", "odata", GetEdmModel());
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
如果有人有这个想法,请建议我。
答案 0 :(得分:6)
我解决了我的问题,我很想参考:
datajs-1.1.0.js
Breeze OData功能依赖于datajs库。