Data binding 在树表绑定上添加动态过滤器

Data binding 在树表绑定上添加动态过滤器,data-binding,sapui5,sap-fiori,Data Binding,Sapui5,Sap Fiori,我想将名为“app”的参数从我的Fiori磁贴配置传递到我的应用程序,并在数据绑定中使用它。我认为在xml视图上不可能进行动态筛选,建议使用attachAfterRendering函数。我在视图控制器中尝试了以下代码,但结果不一致,有时数据加载正确,有时我得到“无数据”。任何帮助都将不胜感激 onInit: function() { var oStartupParameters = this.getMyComponent().getComponentData().sta

我想将名为“app”的参数从我的Fiori磁贴配置传递到我的应用程序,并在数据绑定中使用它。我认为在xml视图上不可能进行动态筛选,建议使用attachAfterRendering函数。我在视图控制器中尝试了以下代码,但结果不一致,有时数据加载正确,有时我得到“无数据”。任何帮助都将不胜感激

    onInit: function() {

        var oStartupParameters = this.getMyComponent().getComponentData().startupParameters;

        this._oView = this.getView();
        this._oView.attachAfterRendering(function() {
            var oTreeTable = this.byId("treeTable");
            oTreeTable.bindAggregation("rows", {
                path: "/Nodes",
                filters: [
                    new sap.ui.model.Filter("Application", sap.ui.model.FilterOperator.EQ, oStartupParameters["app"])
                ]
            });
        });
    }

您提到的文章是关于在XML视图中的过滤器定义中使用动态绑定表达式的。据我了解,这与你的情况不同

如果不使用
attachAfterRendering
,您只需在检索
ostarupparameters
后,在onInit函数的绑定信息中定义一个过滤器即可。请检查这个。多谢各位

var oTreeTable = this.byId("treeTable");
oTreeTable.bindRows({ path: "/Nodes", filters: [
                new sap.ui.model.Filter("Application", sap.ui.model.FilterOperator.EQ, oStartupParameters["app"])
            ]});