2016-03-14 3 views
0

Я пытаюсь заполнить выпадающий список именами сотрудников, которые были получены от факторов успеха, но я не могу получить ответ для правильного отображения. Я могу отображать managerId и userId без проблем, а не только имя и фамилию.Перемещение данных списка выпадающего списка SAPUI5

Вот ответ:

{ 
    "d": { 
     "results": [{ 
        "__metadata": { 
         "uri": "https://apisalesdemo8.successfactors.com:443/odata/v2/EmpJob(seqNumber=1L,startDate=datetime'2010-02-01T00:00:00',userId='spappar1')", 
         "type": "SFOData.EmpJob" 
        }, 
        "userId": "spappar1", 
        "managerId": "rmaxx1", 
        "employmentNav": { 
         "__metadata": { 
          "uri": "https://apisalesdemo8.successfactors.com:443/odata/v2/EmpEmployment(personIdExternal='spappar1',userId='spappar1')", 
          "type": "SFOData.EmpEmployment" 
         }, 
         "personNav": { 
          "__metadata": { 
           "uri": "https://apisalesdemo8.successfactors.com:443/odata/v2/PerPerson('spappar1')", 
           "type": "SFOData.PerPerson" 
          }, 
          "personalInfoNav": { 
           "results": [{ 
            "__metadata": { 
             "uri": "https://apisalesdemo8.successfactors.com:443/odata/v2/PerPersonal(personIdExternal='spappar1',startDate=datetime'1990-01-01T00:00:00')", 
             "type": "SFOData.PerPersonal" 
            }, 
            "lastName": "Pappar", 
            "firstName": "Steve" 
           }] 
          } 

Здесь связывании мои данные для выпадающего списка:

var employeeTemplate = new sap.ui.core.ListItem({ 
    text: "{employeeDropDownModel/employmentNav/personNav/personalInfoNav/results>firstName} {employeeDropDownModel/employmentNav/personNav/personalInfoNav/results>lastName}" 
}); 
sap.ui.getCore().getElementById('employeeId').bindItems("employeeDropDownModel>/d/results", employeeTemplate); 

Любая помощь будет удивительным, я перепробовал много различных комбинаций, чтобы получить привязку к работе , но безрезультатно.

+0

Вы используете именованную модель 'employeeDropDownModel'? В этом случае ваша привязка должна быть 'employeeDropDownModel>/etc ...' (т. Е. Если вы используете именованную модель, ваша привязка должна иметь префикс 'namedmodel>' – Qualiture

+0

. Интересно, почему вы пытаетесь получить доступ к 'lastName' и' firstName' из ** массива **. Поскольку массив явно не имеет этого свойства.Что могло бы работать в следующем: '..... personalInfoNav/results/0/firstName. И, как сказал Qualiture,' '' ' принадлежит где-то еще. – Marc

+0

Почему бы не использовать модель OData с расширением? –

ответ

0

Спасибо за замечания и предложения, ребята, я перепробовал много различных способов:

employeeDropDownModel>/employmentNav/personNav/personalInfoNav/results/firstName 
employeeDropDownModel>/employmentNav/personNav/personalInfoNav/results/0/firstName 

Ни один из thses работали и у меня есть данных-САП-щ -xx-bindingSyntax = "complex" в моем index.html.

Так что я в конечном итоге делает обязательную силу модель обычным способом, а затем просто перемещая имя и фамилию в модели на том же уровне, USERID и ManagerID:

$.each(
      this.employeeModel,function(index, value) { 
if (value.employmentNav.personNav.personalInfoNav.results.length > 0) { 
    var firstName = value.employmentNav.personNav.personalInfoNav.results[0].firstName; 
               var lastName = value.employmentNav.personNav.personalInfoNav.results[0].lastName; 
               value['firstName'] = firstName; 
               value['lastName'] = lastName; 
              } else { 
               value['firstName'] = ''; 
               value['lastName'] = ''; 
              } 
             }); 

Это решаемой мой вопрос довольно хорошо. Я не уверен, что это очень хорошее решение, но это сработало для меня.

Еще раз спасибо

0


Можете ли вы предоставить jsbin всего потока пользовательского интерфейса. Одна вещь, которая поражает меня сразу из моего опыта, что вы пытаетесь сложное связывание и ваш index.html должен иметь следующий

**data-sap-ui-xx-bindingSyntax="complex"** 

Если это не исправить, вы можете предоставить jsbin пример?

Спасибо и наилучшими пожеланиями,
вира

+0

Как он сказал, другие свойства работают нормально. Таким образом, проблема не является параметром bindingSyntax. – Marc

Смежные вопросы