【问题标题】:filterFn Seems to have no effect on WSAPI QueryfilterFn 似乎对 WSAPI Query 没有影响
【发布时间】:2013-08-22 17:02:22
【问题描述】:

我在 WSAPI 查询中传递了一个函数作为过滤器,但它似乎对返回的结果没有影响。是否有使用此方法无法过滤的字段?

Ext.define('CustomApp', {
    extend: 'Rally.app.App',
    componentCls: 'app',

    launch: function() {
        Ext.create('Rally.data.WsapiDataStore', {
            model        : 'TestCase',
            fetch        : ['TestCases'],
            filters      : [
                function(item) {
                    return item.FormattedID.indexOf('10') !== -1;
                }
            ]
        }).load({
            callback: function(records) {
                //All records returned, no filter applied
            }
        });
    }
});

【问题讨论】:

    标签: sdk rally appsdk2


    【解决方案1】:

    我还希望您的代码能够正常工作,但回调可能会在应用客户端过滤器之前发生。这是应用过滤器的代码的修改版本,并且仅按预期返回一条记录:

    Ext.define('CustomApp', {
        extend: 'Rally.app.App',
        componentCls: 'app',
        launch: function() {
    
           var myStore = Ext.create('Rally.data.WsapiDataStore', {
                model        : 'TestCase',
                fetch        : ['FormattedID']
            });
           myStore.load({
                callback: function(records) {
                    myStore.filterBy(function(item) {
                       return item.get('FormattedID').indexOf('10') !== -1;
                });
                console.log(myStore.getRange()); //one record
                }
            });
        }
    });
    

    【讨论】:

    • 感谢尼克的回复!这很棒,但不是我想要的。在我将商店加载到我身边后,我不想过滤结果,我正在寻找一种过滤结果服务器端的方法。基本上,我试图重新创建的是 LBAPI 提供的“in”过滤器运算符。由于 WSAPI 不提供此功能,因此我希望通过将函数传递给服务器来实现它。看起来这可能是不可能的:(
    • 不客气,康纳。如果您想从 LBAPI 获取数据,我假设您打算使用 Rally.data.lookback.SnapshotStore。
    猜你喜欢
    • 2015-10-31
    • 2019-02-16
    • 2021-12-24
    • 1970-01-01
    • 2012-10-22
    • 2021-11-01
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多