如何在SapUi5中手动创建绑定?

时间:2016-04-04 13:23:49

标签: javascript odata sapui5

我有一个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。

1 个答案:

答案 0 :(得分:0)

查看QUnit Test for OData List Binding有很多好的例子

手动执行列表绑定的示例

var oBinding = oModel.bindList("/Categories");

var handler = function() {
  oBinding.detachChange(handler);
}

oBinding.attachChange(handler);
oBinding.initialize();