2015-04-28 3 views
0

Мне нужно построить таблицу, состоящую из 2 столбцов - первая - это имя, а вторая - если человек одобрен или нет.Значок набора в зависимости от текстового значения

Вот JSON я получаю от сервера:

{"records":[ 
{"approved":"Yes","name":"Doe John"}, 
{"approved":"No","name":"Doe Jane"}]} 

Я использую выше JSON для установки модели в таблице.

Мне нужно показать значок во второй колонке в зависимости от значения «одобренного» ключа: sap.ui.core.IconPool.getIconURI("accept"), если он одобрен, и sap.ui.core.IconPool.getIconURI("decline"), если в противном случае.

Вот как я попытался определить строки таблицы:

var oModel = new sap.ui.model.json.JSONModel(); 
oModel.setData(data); //the above JSON response 
oTable = sap.ui.getCore().byId("tableId"); 
oTable.setModel(oModel); 
oTable.bindItems({ 
    path: "/records", 
    template: new sap.m.ColumnListItem({ 
     cells : [ 
     new sap.m.Text({text: "{name}"}), 
     new sap.ui.core.Icon({ //my problem starts here 
      path: "approved", 
      formatter: function(approved){ 
       if (approved==="Yes"){return new sap.ui.core.IconPool.getIconURI("accept");} 
       else{return new sap.ui.core.IconPool.getIconURI("decline");}; 
      } 
     }), 
     ] 
    }) 
}); 

Я не могу определить столбец Icon правильно. В приведенном выше коде показано, что я пытался сделать после поиска ответа в течение некоторого времени.

Как я могу заставить его работать?

ответ

2

Почти хорошо :-) Вы забыли включить в какое поле вы хотите применить форматировщик (в данном случае, src)

Изменение

new sap.ui.core.Icon({ 
     path: "approved", 
     formatter: function(approved){ 
      if (approved==="Yes"){return new sap.ui.core.IconPool.getIconURI("accept");} 
      else{return new sap.ui.core.IconPool.getIconURI("decline");}; 
     } 
    }), 

в

new sap.ui.core.Icon({ 
     src : { 
      path: "approved", 
      formatter: function(approved){ 
       if (approved==="Yes"){return new sap.ui.core.IconPool.getIconURI("accept");} 
       else{return new sap.ui.core.IconPool.getIconURI("decline");}; 
      } 
     } 
    }), 
+0

Если я return from formatter 'new sap.ui.core.IconPool.getIconURI (" accept ")', я получаю 'Uncaught TypeError: s.indexOf не является функцией'. Вместо этого я «вернул» sap-icon: // accept «;» и работает отлично. Благодаря! – keshet

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