Reputation: 590
i am trying to implement WebApi OData with Durandal, Breeze and knockout. But I always getting below error :
Unable to initialize OData. Needed to support remote OData services
I created a view model:
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);
});
In BreezWebApiConfig mentioned:
public static void RegisterBreezePreStart() {
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "BreezeApi",
routeTemplate: "api/{controller}/{action}"
);
}
and registered 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 }
);
}
Please suggest me if anyone having the idea.
Upvotes: 1
Views: 1514
Reputation: 590
I solve my problem, I was missing to take reference :
datajs-1.1.0.js
Breeze OData functionality is dependent on datajs library.
Upvotes: 6