羽毛客户端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