IBM Worklight - 无法显示使用 SQL 适配器检索到的数据
Posted
技术标签:
【中文标题】IBM Worklight - 无法显示使用 SQL 适配器检索到的数据【英文标题】:IBM Worklight - Unable to display data retrieved using SQL adapter 【发布时间】:2014-03-26 18:38:16 【问题描述】:我正在尝试从数据库中获取数据并将其显示在应用程序中。 下面是我的代码。调用运行良好,但数据不显示。
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"
]
我只想把这些东西都打印在屏幕上
【问题讨论】:
你得到什么错误? 我在控制台上什么都没有。 当你说'在调用过程中它做得很好'时,你的意思是你确实从'loadFeedSuccess'中的过程中获取数据? 我认为他的意思是调用成功但显示项目失败。 @user3465606,调用的结果是什么?将其添加到问题中。 【参考方案1】:首先,您需要更改“项目”:
if (result.invocationResult.Items.length>0)
displayFeeds(result.invocationResult.Items);
到“结果集”:
if (result.invocationResult.resultSet.length>0)
displayFeeds(result.invocationResult.resultSet);
其次,我将 Worklight 提供的 worklight_training
数据库脚本与问题中的代码 sn-ps 结合使用。我已将 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 开发工具中的控制台确实显示了一些东西...您声称在您的情况下它没有。你需要弄清楚这一点。
【讨论】:
@user3465606,如果我的回答有助于解决您的问题,请标记为已回答。以上是关于IBM Worklight - 无法显示使用 SQL 适配器检索到的数据的主要内容,如果未能解决你的问题,请参考以下文章
IBM Worklight 6.0.0.1 - jQuery 调色板不显示
IBM Worklight - 无法在 Worklight Console 和设备中更改应用程序图标
IBM Worklight 6.0 - 无法在 avd 上使用适用于 android 环境的 dojo 工具包运行示例混合 Worklight 应用程序?
IBM Worklight:无法在 Worklight Console 中上载适配器