【发布时间】:2014-08-19 15:40:25
【问题描述】:
这个问题来自于对原始问题的钻取:How to set filter in table dropdown based on table row data
背景
我想在 SAPUI5 下拉控件上使用过滤器,我在其中根据模型属性(数据绑定)设置过滤器值
问题
如果我使用过滤器值value1 由数据绑定指定的过滤器:
new sap.ui.model.Filter({
path : "division",
operator : sap.ui.model.FilterOperator.EQ,
value1 : "{/someProperty}"
})
那么下拉菜单不会呈现任何项目
但是,如果我硬编码属性value1的值:
new sap.ui.model.Filter({
path : "division",
operator : sap.ui.model.FilterOperator.EQ,
value1 : "Test"
})
然后过滤器按预期工作。
问题
真的不能使用数据绑定来指定过滤器值吗?或者我应该以另一种方式实现它?
我的一小部分人实际上可以理解,使用来自同一模型的值在控件的模型上设置过滤器可能会导致一些引用问题,但是当使用两个不同的命名模型(一个用于下拉菜单,一个用于过滤值)
非常感谢任何帮助!
【问题讨论】:
-
我知道它已经很久了。你是如何解决这个问题的?我需要在我的应用程序中按日期为列表设置默认过滤器。我们必须在 JS 中使用带有模板的 bindAggregation 吗?还是有更好的方法?
-
我想我继续使用 EventBus,并在控制器中设置过滤器
-
不确定我是否在这里遗漏了什么,但你不能只做'value1:this.getView().getModel().getProperty("/someProperty")'(假设'this ´ 与控制器有关)?
-
通常情况下会这样,但在这种情况下,过滤器是聚合模板的一部分(请参阅上面提到的链接),因此每个过滤器都应该使用当前行的绑定上下文中的值进行设置
-
相关 GitHub 问题:github.com/SAP/openui5/issues/130
标签: javascript sapui5