监听自定义控件UI5的JSONModel

时间:2016-07-29 05:24:16

标签: data-binding custom-controls sapui5 jsonmodel

我有一个自定义控件需要数据数组,如下所示

properties : {
            scrollheight: {type : "sap.ui.core.CSSSize", defaultValue : "100%"},
            array1 :{type : "Array", defaultValue : []},
            array2 : {type : "Array", defaultValue : []},
        }

我有3个JSONModel,我已将其设置为View

问题是我需要处理这些模型,我必须将2个数组设置为自定义控件。

当这些JSONModel发生任何变化时,我还需要更新阵列。

如果我将这些绑定到属性,我怎样才能实现这一点?或者我是否需要监听模型的更改并更新阵列?

或者是他们的任何其他方法吗?

2 个答案:

答案 0 :(得分:0)

有时很难保持JSONModel中的数据与控制器保持一致,因为你总是要记住,如果你改变了一件事,你也必须改变另一件事。

为了使控制器代码更简洁,我通常会创建一个JSONModel的子类,在其中我负责模型的一致性。这可以通过使用您自己的方法覆盖setProperty方法来完成,当您看到编辑某个属性时,依赖属性也会立即更改。

请在下面的jsbin中找到一个如何工作的示例。在示例中,我试图使属性2与属性1保持一致:

http://jsbin.com/novepa/1/edit?html,output

答案 1 :(得分:0)

我通过获取绑定和附加更改事件来解决这个问题

我们必须获取模型中特定项的绑定,如果我们可以使用PropertyBinding的属性,如果我们必须使用它的List或数组ListBinding

然后我有一个设置为自定义控件的模型,更改事件将更新自定义控件模型

JSBin显示如何将更改事件添加到绑定(这里我使用了ListBinding)