客户端Breeze JS

时间:2013-06-20 13:47:50

标签: javascript breeze

Breeze js是否只能在客户端使用,服务器只支持REST?原因是我想利用Breeze的客户端数据检索和管理,而服务器端已经完全开发。

1 个答案:

答案 0 :(得分:2)

是的,您需要在客户端或服务器上提供Breeze元数据,但当然,您将无法使用任何EntityQuery.methods,例如'where','take' ,'skip','orderBy'等.Breeze示例包含一个与任意REST api对话的“Edmunds”示例。摘录于此:

var serviceName = "http://api.edmunds.com/v1/api/"; // edmunds

var ds = new breeze.DataService({
    serviceName: serviceName,
    hasServerMetadata: false,
    useJsonp: true,
    jsonResultsAdapter: jsonResultsAdapter
});

var entityManager = new breeze.EntityManager({dataService: ds});


var q = EntityQuery.from("vehicle/makerepository");
// this will call -> "http://api.edmunds.com/v1/api/vehicle/makeRespository"
myEntityManager.executeQuery(q).then(...);

如果您的API支持参数(在“纯”REST中添加或代替“纯”REST),您还可以使用 EntityQuery.withParameters 方法。例如:

var makeId = "Ford xxx";
// will send (approx) -> "http://api.edmunds.com/v1/api/vehicle/modelRespositoryfindByMakeId?makeId=Ford xxx"

var query = breeze.EntityQuery
        .from("vehicle/modelrepository/findbymakeid")
        .withParameter( { makeId: makeId };

如果您要使用其中任何一种路线,请参阅有关元数据的Breeze文档和JsonResultsAdapter。 (看看Edmunds的样本)。

希望这有帮助。