SAPUI5 应用程序未将外部 API 数据设置为 JSON 模型



我正在尝试将从 API 端点检索到的股票价格呈现到 SAPUI5 应用程序的磁贴控件中。我在控制器文件中有以下设置:

var oModel = new sap.ui.model.json.JSONModel();
sap.ui.getCore().setModel(oModel, 'stockinfo');
// load data from URL
oModel.loadData('https://api.iextrading.com/1.0/stock/dax/quote?displayPercent=true');
oModel.attachRequestCompleted(function() {
var data = oModel.getData();
console.log('data', data);
this.getView().getModel('stockinfo').setData(data);
});     

当我尝试将其绑定到控件时,没有任何内容呈现:

<GenericTile
class="sapUiTinyMarginBegin sapUiTinyMarginTop"
header="{i18n>startpageUserReviewsTileTitle}"
press="onNavToReviews">
<tileContent>
<TileContent>
<content>
<NumericContent 
value = "{
path:'stockinfo>/latestPrice'
}" 
scale = "%"
/>
</content>
</TileContent>
</tileContent>
</GenericTile>

有谁知道我的设置出了什么问题?

我想通了。来自 SAP 文档

使用 GET HTTP 请求从服务器加载 JSON 编码的数据,并将生成的 JSON 数据存储在模型中。注意:由于浏览器安全限制,大多数"Ajax"请求都受同源策略的约束,该请求无法成功从不同的域、子域或协议检索数据。

我基本上只是删除了无关的"attachRequestComplete"和setModel方法:sap.ui.getCore((.setModel(oModel,'stockinfo'(

所需的所有代码:

var oModel = new sap.ui.model.json.JSONModel();
oModel.loadData('https://api.iextrading.com/1.0/stock/dax/quote?displayPercent=true');
this.setModel(oModel, 'stockinfo');

最新更新