在微风中查询返回的结果

时间:2015-10-26 21:38:35

标签: javascript breeze

我想查询返回的结果,但是当我使用下面的代码时,它会抛出一个错误:

let em = new breeze.EntityManager('api/customer');
let serverQuery = breeze.EntityQuery.from('Customer');
let localQuery = breeze.EntityQuery.from('Customer').where('Id', '==', '1');
em.executeQuery(serverQuery)
  .then(data => {
    let localData = data.entityManager.executeQueryLocally(localQuery); //error
  })
  .catch(error => {
   console.log(error);
  });

我得到的错误是:

  

未捕获错误:无法找到resourceName的entityType:'Customer'。考虑向查询添加“EntityQuery.toType”调用,或调用MetadataStore.setEntityTypeForResourceName方法为此resourceName注册entityType。

我可以看到执行serverQuery时会返回结果,但它不喜欢我尝试查询返回的结果。 我知道我可以通过第一次通过api调用运行localQuery来获得结果,但我希望首先从服务器获取所有客户(可能需要在某种程度上过滤),然后在用户输入时过滤这些客户,例如,客户的姓名,每次用户更改该字段中的客户名称时,它都不会尝试从服务器获取数据。我很可能在上面的代码中做错了,但是有可能用微风来做吗?

1 个答案:

答案 0 :(得分:0)

好的,我不知道这是否是最好的方法,但这段代码似乎有效:

let em = new breeze.EntityManager('api/customer');
let serverQuery = breeze.EntityQuery.from('Customer').toType('Customer');
em.executeQuery(serverQuery)
  .then(data => {
    let localData = data.query.where('id', '==', '1').using(em).executeLocally();  //works!
  })
  .catch(error => {
   console.log(error);
  });