簡體   English   中英

輕松查詢返回結果

[英]query against returned results in 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。 考慮將“ EntityQuery.toType”調用添加到查詢中,或調用MetadataStore.setEntityTypeForResourceName方法為該resourceName注冊一個EntityType。

我可以看到在執行serverQuery時結果又回來了,但是它不喜歡我嘗試對返回的結果進行查詢。 我知道我可以通過第一次通過api調用運行localQuery來獲得結果,但是我想首先從服務器中獲取所有客戶(可能需要進行某種程度的過濾),然后在用戶輸入(例如,客戶名稱)時過濾這些客戶一個輸入字段,以便用戶每次在該字段中更改客戶名稱時,它都不會嘗試從服務器獲取數據。 我很可能在上面的代碼中做錯了什么,但是是否可以輕而易舉地做到呢?

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

 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); }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM