在JavaScript中从REST服务获取个人数据?

时间:2018-07-27 05:49:59

标签: rest service jet

我正在尝试创建ComboBox,其中填充了我从javascript中的REST服务获得的数据。我正在用Oracle Jet执行此操作。

我的Json数据看起来像 “ items”:[{“ code”:“ 000”,“ description”:“ Default”},{“ code”:“ 101”,“ description”:“ Jebel Ali”}}]

我想在组合框中单独显示说明值。

如何实现?

1 个答案:

答案 0 :(得分:0)

oracle jet组合框希望选项对象应该具有label和value属性。

例如。

[ {
     "value" : "000",
     "label" : "Default"
  },
  {  "value":"101",
     "label":"Jebel Ali"
  }
]

如果您不想更改从rest api收到的json,则可以使用以下数据提供程序映射条款

//In mapfields, use "code" as key
//map "description" to "label" and "code" to "value"
var mapFields = function(item) {
  var data = item['data'];
  var mappedItem = {};
  mappedItem['data'] = {};
  mappedItem['data']['label'] = data['description'];
  mappedItem['data']['value'] = data['code'];
  mappedItem['metadata'] = {'key': data['code']};

  return mappedItem;
}; 
var dataMapping = {'mapFields': mapFields};

//create an ArrayDataProvider using 'id' as keyAttributes
var arrayDataProvider = new oj.ArrayDataProvider(dataArray, {keyAttributes: 'code'});

//create ListDataProviderView with dataMapping
this.dataProvider = new oj.ListDataProviderView(arrayDataProvider, {'dataMapping': dataMapping});    

您可以在下面的链接中的oracle jet cookbook中进行检查

http://www.oracle.com/webfolder/technetwork/jet/jetCookbook.html?component=comboboxOne&demo=dataMapping

这与jet 5.1版本相同。