我有一个自定义控件需要数据数组,如下所示
properties : {
scrollheight: {type : "sap.ui.core.CSSSize", defaultValue : "100%"},
array1 :{type : "Array", defaultValue : []},
array2 : {type : "Array", defaultValue : []},
}
我有3个JSONModel,我已将其设置为View
问题是我需要处理这些模型,我必须将2个数组设置为自定义控件。
当这些JSONModel发生任何变化时,我还需要更新阵列。
如果我将这些绑定到属性,我怎样才能实现这一点?或者我是否需要监听模型的更改并更新阵列?
或者是他们的任何其他方法吗?
答案 0 :(得分:0)
有时很难保持JSONModel中的数据与控制器保持一致,因为你总是要记住,如果你改变了一件事,你也必须改变另一件事。
为了使控制器代码更简洁,我通常会创建一个JSONModel的子类,在其中我负责模型的一致性。这可以通过使用您自己的方法覆盖setProperty方法来完成,当您看到编辑某个属性时,依赖属性也会立即更改。
请在下面的jsbin中找到一个如何工作的示例。在示例中,我试图使属性2与属性1保持一致:
答案 1 :(得分:0)
我通过获取绑定和附加更改事件来解决这个问题
我们必须获取模型中特定项的绑定,如果我们可以使用PropertyBinding的属性,如果我们必须使用它的List或数组ListBinding
然后我有一个设置为自定义控件的模型,更改事件将更新自定义控件模型
JSBin显示如何将更改事件添加到绑定(这里我使用了ListBinding)