gpt4 book ai didi

extjs - 如何在商店过滤器功能中获取 viewModel 对象?

转载 作者:行者123 更新时间:2023-12-05 00:49:28 25 4
gpt4 key购买 nike

我定义了商店和过滤器。 ViewModel 包含 test 对象,我需要按此对象过滤商店项目。

Ext.define('XXX.view.XXX.ViewXXXXModel', {
extend: 'Ext.app.ViewModel',

...

    stores: {
agreements: {
source: 'XXX',
filters: {
filterFn: function(item) {
return item.some_field !== this.get('test').somevalue;
}
}
}
}

我无法通过过滤功能访问 View Model 的测试对象?

最佳答案

现在为时已晚,但我也遇到了同样的问题,更简洁的方法是将 filterFn 作为公式绑定(bind)返回:

对于您的原始示例:

stores: {
agreements: {
source: 'XXX',
filters: [{
filterFn: '{storeFilter}'
}]
}
}
},
formulas: {
storeFilter: function(get) {
var somevalue = get('test').somevalue;
return function(item) {
return item.some_field !== this.get('test').somevalue;
};
}
}

编辑:当我最初写这篇文章时,我不知道 Ext 在使用 setFilters 时不断添加额外的过滤器,而不是仅仅替换它们。为了解决这个问题,您需要使用 id 来命名过滤器。在上面的例子中是这样的:

        filters: [{
id: 'myVMFilterFunction',
filterFn: '{storeFilter}'
}]

然后它按预期替换过滤器

关于extjs - 如何在商店过滤器功能中获取 viewModel 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40171387/

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