我正在使用 SAPUI5 和 OpenUI5。我现在已经开发了一些自定义控件,但从来没有为这个控件使用过 2-Way 数据绑定(bind)...我已经尝试过了oMyControl.bindProperty("someValue", "oModel>/testBindingValue")
我所看到的是:在调试器中观看模型时,字段 aBindings 有一个条目:
sPath: "/testBindingValue"
sInternalType: "int"
以及我的 Controls 属性类型的正确 sInternalType(在本例中为“int”)。
但是当我查看数组 oModel.oData 时,它是空的并且
oModel.getProperty("/testBindingValue")
也返回未定义...但是我的控件肯定具有“someValue”的值...那么,有人知道吗?谢谢,
亚历克斯
更新:
在这里你可以看到我的工作流程:
首先创建模型:
var oModel = new sap.ui.model.json.JSONModel();
sap.ui.getCore().setModel(oModel, 'oModel');
然后初始化我的控件:
var oMyControl = new MyControl({
someValue: "Test Value of the Control"
});
oMyControl.bindProperty("someValue", "oModel>/testValue");
现在,当我在做:
alert(oModel.getProperty("/testValue"));
我会得到“未定义”。
因此,对于普通控件,这是有效的,对于“值”、“文本”、“可见”或“启用”等等。
最佳答案
我猜你的自定义控件中有一些东西使它无法正常工作。我已经创建了一个我理解您正在做的示例( http://jsbin.com/kiwoza/2/edit?html,console,output ),它似乎可以按我的预期工作。如果此示例与您尝试完成的示例有所不同,请更新问题,详细说明为什么它不太正确。
关于data-binding - 自定义控件的 SAPUI5/OpenUI5 数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29394762/