Sapui5: Bagaimana cara mengambil oData secara dinamis menggunakan manifest.json

Saya telah mengkonfigurasi manifest.json & neo-app.json

    "dataSources": {
        ,"news": {
            "uri": "/destinations/int_news/sap/opu/odata/sap/XKDNK/",
            "type": "OData",
            "settings": {
                "odataVersion": "2.0"
            }
        }
    },
    "models": {
          "news": {
            "dataSource": "news"
          }
    }

Mengambil oData di pengontrol saya:

var oModel =  this.getModel("news");
   oModel.read("/planSet", {
    success: function(data){
        debugger;
    }
}); 

Tapi ini mengambil semua data lebih dari 1000 baris, saya perlu menambahkan filter ke kueri.

Saya telah berhasil menambahkan filter hanya pada URL langsung:

$filter=SystemId eq \"SKYPE\"

Tetapi Bagaimana saya bisa menambahkan filter ke JavaScript secara dinamis tanpa mengambil semua data? Misalnya:

var oModel =  this.getModel("news");

oModel.read("/planSet?$filter" + <MY_CUSTOM_DATA_FILTER>, {
    success: function(data){
       debugger;
    }
}); 

person Eli    schedule 08.10.2017    source sumber


Jawaban (1)


Cobalah untuk membuat objek filter tempat Anda meneruskan parameter filter dan menggunakan objek filter ini sebagai parameter dalam panggilan baca. seperti di bawah ini

var oModel =  this.getModel("news"),
    sfilterVal = "SKYPE",
    aFilters = [];


        if (sfilterVal) {
            aFilters.push(new sap.ui.model.Filter("SystemId", sap.ui.model.FilterOperator.EQ, sfilterVal));
        }

        oModel.read("/planSet", {
            filters: aFilters,
            success: function(data){
                debugger;
            }
        });
person Vivek Kumar    schedule 08.10.2017