Parwej
Parwej

Reputation: 590

Breeze.js WebApi OData and Durandal

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

Answers (1)

Parwej
Parwej

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

Related Questions