Javascript SAPUI5:如果我只有对象,如何从sap.m.list中查找项目?

Javascript SAPUI5:如果我只有对象,如何从sap.m.list中查找项目?,javascript,sapui5,Javascript,Sapui5,假设我只有关于对象的信息,但没有它的列表项信息 示例: //The list var odragableListServices = that.byId("dragableListServices"); var oBinding= odragableListServices.getBinding("items"); //This will return the first Object in JSON format var oListObj = o

假设我只有关于对象的信息,但没有它的列表项信息

示例

    //The list 
    var odragableListServices = that.byId("dragableListServices");
    var oBinding= odragableListServices.getBinding("items");
    //This will return the first Object in JSON format 
     var oListObj =  oBinding.getModel("NoneAssignedTaskModel").getProperty("/data/1");
现在,我的问题是:如何反向操作?(相反)假设我只有json对象:oListObj

我想返回如下内容:
\uxmlview8-dragableListServices-drgListObjItem-\uu item1


如果我只有对象,如何从列表中查找项目

您可以循环查看listItems并将其与您的对象进行比较

var oYourListItem = {Id: 'someID', ...};

var aItems = this._oList.getItems();
aItems.forEach(function(oItem) {
    if (oItem.Id === oYourListItem.Id) {
        // oItem is the listItem of interrest, do stuff...
    }
})

您可以在listItems上循环,并将其与您的对象进行比较

var oYourListItem = {Id: 'someID', ...};

var aItems = this._oList.getItems();
aItems.forEach(function(oItem) {
    if (oItem.Id === oYourListItem.Id) {
        // oItem is the listItem of interrest, do stuff...
    }
})

正如我在评论中所解释的,通常最好根据模型数据调整视图

在下面的示例中,单击日历中的日期后,模型将更新为
isSelected
属性,该属性对于模型中的任何匹配日期都设置为
true

handleCalendarSelect : function(oEvent) {
    // get the selected date
    const selectedDate = oEvent.getSource().getSelectedDates()[0].getStartDate().getTime();
    const oModel = this.getView().getModel();

    // get the listitems node from your model 
    const aListItems = oModel.getData().listitems;

    // where the magic happens:
    aListItems.map((obj) => {
        obj.isSelected = obj.date === selectedDate;
    });

    // update the model
    oModel.setProperty("/listitems", aListItems);
},
然后相应地更新列表

请参见以下可运行示例:

sap.ui.controller(“view1.initial”{
onInit:function(){
const oModel=new sap.ui.model.json.JSONModel({
清单项目:[
{
“fname”:“Tyetha”,
“lname”:“Puglisi”,
“日期”:15740316万
},
{
“fname”:“Tasheis”,
“lname”:“Monuteaux”,
“日期”:157418000000
},
{
“fname”:“昆西”,
“lname”:“Landau”,
“日期”:15742440000
},
{
“fname”:“Danyell”,
“lname”:“奇怪”,
“日期”:1574290800000
},
{
“fname”:“Winston”,
“lname”:“Cook”,
“日期”:157437200000
},
{
“fname”:“Lilia”,
“lname”:“Willms”,
“日期”:15744636000
},
{
“fname”:“Sharful”,
“lname”:“Platt”,
“日期”:157455000000
},
{
“fname”:“斯坦”,
“lname”:“Herrick”,
“日期”:157463640000
},
{
“fname”:“Denise”,
“lname”:“Tang”,
“日期”:15747280000
},
{
“fname”:“Samuel”,
“lname”:“Gilbertson”,
“日期”:1574809200000
}
]
});
this.getView().setModel(oModel);
},
handleCalendarSelect:功能(oEvent){
const selectedDate=oEvent.getSource().getSelectedDates()[0].getStartDate().getTime();
const oModel=this.getView().getModel();
常量aListItems=oModel.getData().listitems;
aListItems.map((obj)=>{
obj.isSelected=obj.date==selectedDate;
});
setProperty(“/listitems”,aListItems);
},
formatDate:函数(fValue){
jQuery.sap.require(“sap.ui.core.format.DateFormat”);
const oTimeFormat=sap.ui.core.format.DateFormat.getTimeInstance({pattern:“YYYY/MM/dd”});
if(fValue){
返回oTimeFormat.format(新日期(fValue));
}
返回null;
}
});
sap.ui.xmlview(“main”{
viewContent:jQuery(“#view1”).html()
})
.placeAt(“uiArea”)

正如我在评论中解释的,通常最好根据模型数据调整视图

在下面的示例中,单击日历中的日期后,模型将更新为
isSelected
属性,该属性对于模型中的任何匹配日期都设置为
true

handleCalendarSelect : function(oEvent) {
    // get the selected date
    const selectedDate = oEvent.getSource().getSelectedDates()[0].getStartDate().getTime();
    const oModel = this.getView().getModel();

    // get the listitems node from your model 
    const aListItems = oModel.getData().listitems;

    // where the magic happens:
    aListItems.map((obj) => {
        obj.isSelected = obj.date === selectedDate;
    });

    // update the model
    oModel.setProperty("/listitems", aListItems);
},
然后相应地更新列表

请参见以下可运行示例:

sap.ui.controller(“view1.initial”{
onInit:function(){
const oModel=new sap.ui.model.json.JSONModel({
清单项目:[
{
“fname”:“Tyetha”,
“lname”:“Puglisi”,
“日期”:15740316万
},
{
“fname”:“Tasheis”,
“lname”:“Monuteaux”,
“日期”:157418000000
},
{
“fname”:“昆西”,
“lname”:“Landau”,
“日期”:15742440000
},
{
“fname”:“Danyell”,
“lname”:“奇怪”,
“日期”:1574290800000
},
{
“fname”:“Winston”,
“lname”:“Cook”,
“日期”:157437200000
},
{
“fname”:“Lilia”,
“lname”:“Willms”,
“日期”:15744636000
},
{
“fname”:“Sharful”,
“lname”:“Platt”,
“日期”:157455000000
},
{
“fname”:“斯坦”,
“lname”:“Herrick”,
“日期”:157463640000
},
{
“fname”:“Denise”,
“lname”:“Tang”,
“日期”:15747280000
},
{