具有自定义数据源读取功能的 KendoUI 自动完成
KendoUI Autocomplete with custom datasource read function
我在框架内使用 Kendo UI 自动完成小部件(不是 Kendo 的 MVVM 框架)。因此,我在 returns 我的数据的数据源配置中定义了一个读取函数,而不是使用字符串 url 引用。我的配置片段如下:
transport: {
read: function (opts) {
console.log('arguments', arguments);
readFn(opts)
.then(opts.success)
.catch(e => opts.error([]));
}
}
我的问题是,当我输入自动完成时,自动完成的当前文本值没有传递到我的自定义读取函数。这意味着我无法使用该函数进行动态过滤。 (我希望它作为传递给函数的 opts
散列的一部分传递。)
Kendo 提供了一个 serverFiltering
选项,但是在使用自定义函数时这似乎没有任何作用。所以从本质上讲,这意味着什么——在最初输入时,Kendo 将尝试 运行 函数,但之后它将在内部过滤数据。这不是我要寻找的行为。
有解决办法吗?
问题当然出在我正在做的事情上。我确实设置了 serverFiltering
选项,但我将其作为主要选项散列的一部分传递,而不是数据源的一部分。将其更改为正确的方式解决了问题。
我在框架内使用 Kendo UI 自动完成小部件(不是 Kendo 的 MVVM 框架)。因此,我在 returns 我的数据的数据源配置中定义了一个读取函数,而不是使用字符串 url 引用。我的配置片段如下:
transport: {
read: function (opts) {
console.log('arguments', arguments);
readFn(opts)
.then(opts.success)
.catch(e => opts.error([]));
}
}
我的问题是,当我输入自动完成时,自动完成的当前文本值没有传递到我的自定义读取函数。这意味着我无法使用该函数进行动态过滤。 (我希望它作为传递给函数的 opts
散列的一部分传递。)
Kendo 提供了一个 serverFiltering
选项,但是在使用自定义函数时这似乎没有任何作用。所以从本质上讲,这意味着什么——在最初输入时,Kendo 将尝试 运行 函数,但之后它将在内部过滤数据。这不是我要寻找的行为。
有解决办法吗?
问题当然出在我正在做的事情上。我确实设置了 serverFiltering
选项,但我将其作为主要选项散列的一部分传递,而不是数据源的一部分。将其更改为正确的方式解决了问题。