羽毛客戶端2.3.0你如何獲得一個syncfusion自定義適配器與羽毛socket.io客戶
syncfusion JavaScript的29年3月15日
我一直在嘗試了一段時間,以創建一個syncfusion custom adapter工作爲其客戶端的feathers socket.io版本。我知道我可以使用休息來獲取數據,但爲了讓我做脫機同步,我需要使用feathers-offline-realtime插件。
此外,我在一個aurelia項目中使用這個,所以我使用es6與巴貝爾進口。
這是我嘗試過的代碼片段,如果需要,我可以發佈整個事情。
我也不確定是否僅僅使用Adapter vs UrlAdapter是正確的,因爲我需要排序和分頁命中服務器,而不僅僅是在本地執行。如果我至少可以獲得一些數據,我想我可以把這部分弄清楚。
注意: Per Prince Oliver我給問題添加了一個說明,我需要能夠調用適配器的任何方法以及只有proccessQuery,如onSort。當datagrid調用onSort方法時,我需要能夠使用羽毛socket.io客戶端調用我的api,因爲它以特殊的方式處理socket.io以用於脫機功能。
import io from 'socket.io-client';
import * as feathers from 'feathers-client';
const baseUrl = 'http://localhost:3030';
const socket = io.connect(baseUrl);
const client = feathers.default()
.configure(feathers.hooks())
.configure(feathers.socketio(socket));
const customers = client.service('customers');
export class FeathersAdapter {
feathersAdapter = new ej.Adaptor().extend({
processQuery: function (ds, query) {
let results
makeMeLookSync(function*() {
results = yield customers.find();
console.log(results);
});
結果是未定義的。我嘗試了其他幾種方法,但是這個看起來應該是可行的。
修改後的代碼:
在當我打電話
let results = await customers.find();
圖片說明我現在得到的數據,而且奇怪的錯誤的過程,然後繼續和我獲取數據,但是當結果變量返回時,網格中仍然沒有數據。
async processQuery(ds, query) {
let baseUrl = 'http://localhost:3030';
let socket = io.connect(baseUrl);
let client = feathers.default()
.configure(feathers.hooks())
.configure(feathers.socketio(socket));
let customers = client.service('customers');
let results = await customers.find();
var result = results, count = result.length, cntFlg = true, ret, key, agg = {};
for (var i = 0; i < query.queries.length; i++) {
key = query.queries[i];
ret = this[key.fn].call(this, result, key.e, query);
if (key.fn == "onAggregates")
agg[key.e.field + " - " + key.e.type] = ret;
else
result = ret !== undefined ? ret : result;
if (key.fn === "onPage" || key.fn === "onSkip" || key.fn === "onTake" || key.fn === "onRange") cntFlg = false;
if (cntFlg) count = result.length;
}
return result;
我明白你說什麼,我知道你能做到這一點,但不給你,例如使用的onSort的能力適配器的方法,然後用排序方法調用api。上面的代碼只是將數據綁定到適配器之外。 – dan
王子,我添加了一個便條,請讓我知道,如果這澄清了你的問題,或者如果我需要說一些不同的東西 – dan