Browse Source

BI-142531 fix: 缓存清空且hasNext为false时仍然显示加载更多数据

research/test
chenzeyu 10 months ago
parent
commit
9384119477
  1. 20
      packages/fineui/src/widget/multiselect/loader.js

20
packages/fineui/src/widget/multiselect/loader.js

@ -73,14 +73,14 @@ export class MultiSelectInnerLoader extends Widget {
if (this.cachItems && this.cachItems.length > 0) { if (this.cachItems && this.cachItems.length > 0) {
this.next.setLoaded(); this.next.setLoaded();
const items = this._composeItems(this.cachItems.slice(0, 100)); const items = this._composeItems(this.cachItems.slice(0, 100));
this.addItems(items);
this.cachItems = this.cachItems.slice(100); this.cachItems = this.cachItems.slice(100);
this.addItems(items);
return; return;
} }
o.itemsCreator.apply(this, [ o.itemsCreator.apply(this, [
{ times: ++this.times }, { times: ++this.times },
function() { function () {
self.next.setLoaded(); self.next.setLoaded();
self.addItems(...arguments); self.addItems(...arguments);
} }
@ -105,7 +105,7 @@ export class MultiSelectInnerLoader extends Widget {
], ],
value: o.value, value: o.value,
}); });
this.button_group.on(Controller.EVENT_CHANGE, function(type, value, obj) { this.button_group.on(Controller.EVENT_CHANGE, function (type, value, obj) {
if (type === Events.CLICK) { if (type === Events.CLICK) {
const node = self.cachGroup.getNodeByValue(value); const node = self.cachGroup.getNodeByValue(value);
if (node) { if (node) {
@ -158,12 +158,12 @@ export class MultiSelectInnerLoader extends Widget {
}); });
o.isDefaultInit && o.isDefaultInit &&
isEmpty(o.items) && isEmpty(o.items) &&
nextTick( nextTick(
bind(function() { bind(function () {
o.isDefaultInit && isEmpty(o.items) && this._populate(); o.isDefaultInit && isEmpty(o.items) && this._populate();
}, this) }, this)
); );
} }
hasNext() { hasNext() {
@ -221,7 +221,7 @@ export class MultiSelectInnerLoader extends Widget {
if (arguments.length === 0 && isFunction(o.itemsCreator)) { if (arguments.length === 0 && isFunction(o.itemsCreator)) {
o.itemsCreator.apply(this, [ o.itemsCreator.apply(this, [
{ times: 1 }, { times: 1 },
function(items, keyword) { function (items, keyword) {
if (arguments.length === 0) { if (arguments.length === 0) {
throw new Error("object already registered"); throw new Error("object already registered");
} }

Loading…
Cancel
Save