javascript – IBM Worklight – 无法显示使用SQL适配器检索的数据
作者:互联网
我试图从数据库中获取数据并在应用程序中显示它.
以下是我的代码. invokation运行良好,但不显示数据.
sqlAdapter-impl.js
var selectStatement = WL.Server.createSQLStatement("select * from studentinfo");
function getStudentInfos() {
return WL.Server.invokeSQLStatement({
preparedStatement : selectStatement,
parameters : []
});
}
sqlAdapter.js
window.$= window.jQuery = WLJQ;
function wlCommonInit() {
GetEmployeeData();
}
function GetEmployeeData() {
var invocationData = {
adapter : 'sqlAdapter',
procedure : 'getStudentInfos'
};
WL.Client.invokeProcedure(invocationData,{
onSuccess : loadFeedsSuccess,
onFailure : loadFeedsFailure
});
}
function loadFeedsSuccess(result){
WL.Logger.debug("Feed retrieve success");
busyIndicator.hide();
if (result.invocationResult.Items.length>0)
displayFeeds(result.invocationResult.Items);
else
loadFeedsFailure();
}
function displayFeeds(items){
var ul = $('#itemsList');
for (var i = 0; i < items.length; i++) {
var li = $('<li/>').html(items[i].sid);
var pubDate = $('<div/>', {'class': 'pubDate'}).html(items[i].sname);
li.append(pubDate);
ul.append(li);
}
}
sqlAdapter.html
<body id="content" style="display: none;">
<div id="itemsList"></div>
<script src="js/initOptions.js"></script>
<script src="js/sqlAdapter.js"></script>
<script src="js/messages.js"></script>
</body>
这是我调用该过程的方法
{
"isSuccessful": true,
"resultSet": [
{
"sclass": "PUC",
"sgrade": "A+",
"sid": "PUC001",
"sname": "Rohan"
},
{
"sclass": "PUC",
"sgrade": "A",
"sid": "PUC002",
"sname": "Rakesh"
},
{
"sclass": "PUC",
"sgrade": "C",
"sid": "PUC003",
"sname": "Raj"
},
{
"sclass": "PUC",
"sgrade": "E",
"sid": "PUC004",
"sname": "Roman"
}
]
}
我只是想把所有这些东西都印在屏幕上
解决方法:
首先,您需要更改“项目”:
if (result.invocationResult.Items.length>0)
displayFeeds(result.invocationResult.Items);
到“resultSet”:
if (result.invocationResult.resultSet.length>0)
displayFeeds(result.invocationResult.resultSet);
其次,我使用了Worklight提供的worklight_training数据库脚本以及问题中的代码片段.我已将displayFeeds函数更改为:
function displayFeeds(items) {
var ul = $('#itemsList'), i, li;
for (i = 0; i < items.length; i += 1) {
// Create new <li> element and populate it
li = $('<li/>').text(item.firstName);
// Append the <li> element to the <ul> element
ul.append(li);
}
}
最终结果是显示users表中的firstName值.
然后,您可以再使用JavaScript来显示数据库表中所需的内容…
顺便说一句,正如你所看到的…… Chrome开发者工具中的控制台确实显示了一些东西……你声称它没有.你需要搞清楚.
标签:ibm-mobilefirst,javascript,sql,database,worklight-adapters 来源: https://codeday.me/bug/20191003/1846351.html