调用Worklight Adapter并将列表视图中的JSON数据显示为字符串

这是我的adapter.impl.js代码。

//This procedure implementation is to get all the details from the table which in database. var procedure1Statement = WL.Server.createSQLStatement("select * from employee"); function procedure1() { return WL.Server.invokeSQLStatement({ preparedStatement : procedure1Statement, parameters : [] }); } 

这是我在Worklight中从SQL Adapter检索到的JSON数据。

 { "isSuccessful": true, "resultSet": [ { "EMAIL": "bkandregula@gmail.com", "ID": 1, "NAME": "Bhanu Kandregula" }, { "EMAIL": "rbkandregula@gmail.com", "ID": 2, "NAME": "Raghu Kandregula" }, { "EMAIL": "shyamsurisetty@gmail.com", "ID": 3, "NAME": "Shyam Surisetty" }, { "EMAIL": "bunny@gmail.com", "ID": 4, "NAME": "Bunny" }, { "EMAIL": "divya@gmail.com", "ID": 5, "NAME": "Divya Sri" }, { "EMAIL": "chandhu@gmail.com", "ID": 6, "NAME": "Chandana" } ] } 

我不是从客户端调用此适配器,而是在移动控制台的列表视图中显示此数据。 为此,这是我在客户端js文件中使用的ccode。

 function wlCommonInit(){ LoadSQLRecords();} function loadSQLRecords(){ var invocationData = { adapter : 'MySQLadap', procedure : 'procedure1', parameters : [] }; WL.Client.invokeProcedure(invocationData,{ onSuccess : loadSQLQueerySuccess, onFailure : loadSQLQueeryFailure }); } function loadSQLQueerySuccess(result){ WL.Logger.debug("Retrieve success" + JSON.stringify(result)); displayFeeds(result.invocationResult.resultSet); } function loadSQLQueeryFailure(result){ WL.Logger.error("Retrieve failure"); } function displayFeeds(items){ var ul = $('#itemsList'); for (var i = 0; i < items.length; i++) { var li = $('
  • ').html(items[i].id); li.append($('
  • ').html(items[i].name)); li.append($('
  • ').html(items[i].email)); li.append($('
    ')); ul.append(li); } }
  • 这是我的HTML文件代码,用于在屏幕上显示我的数据。

     

      但这不适合我。 我一直在搜索许多博客和网站,但我无法触发这个。 pease帮助我调用适配器并在移动控制台的列表视图中显示该数据。 谢谢。

      您需要更正以下内容,然后重新部署该应用程序。

      1. 你拼错了一个函数名:

        LoadSQLRecords应该是loadSQLRecords

         function wlCommonInit(){ LoadSQLRecords(); // Upper-case 'L'; should be lower-case. } function loadSQLRecords(){ var invocationData = { adapter : 'MySQLadap', procedure : 'procedure1', parameters : [] }; }; 

        您应该在修复之前在Chrome DevTools的控制台中看到以下内容:

         worklight.js:5147 Uncaught Exception: Uncaught ReferenceError: LoadSQLRecords is not defined at (compiled_code):4 main.js:4 Uncaught ReferenceError: LoadSQLRecords is not defined 
      2. 您需要更改以下内容才能实际显示任何值。

        • 使用items.invocationResult.resultSet
        • 对属性使用正确的大写

        从:

         for (var i = 0; i < items.length; i++) { var li = $('
      3. ').html(items[i].id); li.append($('
      4. ').html(items[i].name)); li.append($('
      5. ').html(items[i].email)); li.append($('
        ')); ul.append(li); }

        至:

         for (var i = 0; i < items.invocationResult.resultSet.length; i++) { var li = $('
      6. ').html(items.invocationResult.resultSet[i].ID); li.append($('
      7. ').html(items.invocationResult.resultSet[i].NAME)); li.append($('
      8. ').html(items.invocationResult.resultSet[i].EMAIL)); li.append($('
        ')); ul.append(li); }