我有一个xml视图,它应该显示来自多个实体类型的数据(该表只显示两种类型的公共字段)。 因为我想动态过滤整个表,我想手动设置两个绑定,在需要时过滤它们,并在每次过滤后重建相应的表模型。
但是我没有让我的绑定正常工作,即他们不会收到数据,也不会被过滤。
在controller.js中:
this.workOrderBinding = new Binding(this.getView().getModel(), )"/WorkOrderSet"); //Binding is of type sap.ui.model.odata.v2.ODataListBinding
this.issueNoticeBinding = new Binding(this.getView().getModel(), "/IssueNoticeSet"); //Binding is of type sap.ui.model.odata.v2.ODataListBinding
this.workOrderBinding.attachDataReceived(function() {
var tempModel = new JSONModel();
tempModel.setData({
WorkOrderSet: this.workOrderBinding.getModel().getData()
}, true);
tempModel.setData({
WorkOrderSet: this.issueNoticeBinding.getModel().getData()
}, true);
this.getView().byId("table").setModel(tempModel);
}, this);
其中this.getView().getModel()
返回manifest.json中定义的全局ODataModel。
答案 0 :(得分:0)
查看QUnit Test for OData List Binding有很多好的例子
手动执行列表绑定的示例
var oBinding = oModel.bindList("/Categories");
var handler = function() {
oBinding.detachChange(handler);
}
oBinding.attachChange(handler);
oBinding.initialize();