gpt4 book ai didi

angularjs - 有没有办法刷新虚拟重复容器?

转载 作者:行者123 更新时间:2023-12-03 15:14:08 24 4
gpt4 key购买 nike

我有一个 md-virtual-repeat-container处理来自搜索框触发的 API 调用的数据。当用户输入第二个搜索查询时,我希望能够刷新此容器。

我正在使用类似于 plnkr 的设置来自 this question: .唯一的区别是它在用户输入搜索词时从服务器获取数据。

我的问题

有没有办法触发刷新 md-virtual-repeat-container ?

我认为代码不相关,但这是我的(简化的)生产代码:

    var self = this;
self.infiniteItems = {
numLoaded_: 0,
toLoad_: 0,
items: [],
getItemAtIndex: function (index) {
if (index > this.numLoaded_) {
this.fetchMoreItems_(index);
return null;
}
return this.items[index];
},
getLength: function() {
return this.numLoaded_ + 25;
},
fetchMoreItems_: function (index) {
if (this.toLoad_ < index) {
this.toLoad_ += 5;
var offset = 0;

$http({
method: 'GET',
datatype: 'json',
url: '{my-api-call}',
contentType: "application/json; charset=utf-8",
cache: false,
params: {
param: query,
page: offset
}
}).then(angular.bind(this, function (obj) {
this.items = this.items.concat(obj.data.SearchResults);
this.numLoaded_ = this.toLoad_;
this.offset++;
$scope.searchResults = obj.data.SearchResults;
}));
}
}
};

最佳答案

您可以通过触发伪造的窗口调整大小事件来强制重绘 md-virtual-repeat 容器(这会导致指令调用其私有(private) handleScroll_() 方法,然后调用 containerUpdated() )。

这将触发一个虚假的窗口调整大小事件:

angular.element(window).triggerHandler('resize');

关于angularjs - 有没有办法刷新虚拟重复容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34912151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com