我正在尝试创建ComboBox,其中填充了我从javascript中的REST服务获得的数据。我正在用Oracle Jet执行此操作。
我的Json数据看起来像 “ items”:[{“ code”:“ 000”,“ description”:“ Default”},{“ code”:“ 101”,“ description”:“ Jebel Ali”}}]
我想在组合框中单独显示说明值。
如何实现?
答案 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中进行检查
这与jet 5.1版本相同。