SAPUI5 何时将初始过滤器绑定到控件

Posted

技术标签:

【中文标题】SAPUI5 何时将初始过滤器绑定到控件【英文标题】:SAPUI5 when to bind an initial filter to a control 【发布时间】:2017-05-10 19:04:41 【问题描述】:

我希望将 xml 视图的控制器中的过滤器动态绑定到视图中的控件。我知道该怎么做,但我一开始没有找到合适的方法。

例如我在视图上定义了一个 ComboBox,并为 oData 模型(在视图中)提供了一个绑定路径。然后在控制器中,我希望在 ComboBox 的项目上设置一个拟合器。我在视图的 onInit 中尝试过,但尚未在 ComboBox 对象中设置绑定。

我通过延迟加载解决了这个问题,并在“loadItems”事件中设置了过滤器。有没有办法通过不使用延迟加载来做到这一点?没有找到合适的事件或标准挂钩。

谢谢。

【问题讨论】:

您不需要在绑定的“外部”进行。查看此页面 > help.sap.com/saphelp_nw74/helpdata/en/91/… 【参考方案1】:

所以绑定在 oninit() 中不可用...你第一次在哪里创建绑定?第一次创建绑定时,您还可以应用初始过滤器。

例如,在 onInit 内部的控制器中,您调用 this.byId("myComboBox") 来获取控件。然后调用 oComboBox.bindItems(...) 并传递初始过滤器。所以 bindItems(...) 也接受过滤器。如果过滤器发生变化,您可以简单地调用 oComboBox.getBinding("items").filter(...) 来更新过滤器。查看worklist app tutorial了解一些详细信息...

顺便说一句,您也可以直接在 XMLView 中直接指定包含过滤器的绑定。详情请见我的answer here。

【讨论】:

绑定在 XML 视图中定义。用例有点具体。我希望使过滤器值更灵活,并从配置文件中读取它。它还用于应用程序中的不同视图。所以我避免了 XML 过滤器定义。

以上是关于SAPUI5 何时将初始过滤器绑定到控件的主要内容,如果未能解决你的问题,请参考以下文章

SAPUI5:是否可以在绑定过滤器中执行嵌套绑定

无法使用数据绑定设置过滤器值?

SAPUI5 将下拉框的值绑定到另一个控件的属性

vue属性绑定函数何时执行

SAPUI5表格单元自定义控件绑定

vue.js基础知识篇:简介数据绑定指令计算属性表单控件绑定和过滤器