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
},
{