繁体   English   中英

无法调用适配器过程

[英]Unable to invoke adapter procedure

我正在使用IBM MobileFirst创建一个应用程序。 我已经创建了一个HTTP适配器,现在我正在main.js文件中调用响应。 这是invokeProcedure调用(invocationData var调用适配器以及该适配器中的过程):

    WL.Client.invokeProcedure(invocationData,{
       onSuccess : loadSuccess(),
       onFailure : loadFailure(),
    });

现在,我已经这样定义了loadSuccess()和loadFailure()函数(在调用之前声明)(为测试目的而简单):

    var loadSuccess = function(result){
       alert("success");
       alert(result.invocationResult);
    }

    var loadFailure = function(result){
       alert("failure");
       alert(result.invocationResult);
    }

但是,虽然“成功”和“失败”将闪烁,但“结果”将返回为空。 我看过的每个教程都成功地使用了这些方法,因此我对为什么我的类似实现无法正常工作感到困惑。 此外,invokeProcedure函数似乎正在调用并刷新成功和失败选项的结果!

当我刚刚测试适配器时,适配器会返回一个适当的响应,那么为什么数据调用不能正常工作? IBM文档不是很清楚,因此,我感谢所有建议!

编辑:

我将main.js更新为以下代码:

    function loadSuccess(result){
      alert("success");
    }

    function loadFailure(result) {
      alert("failure");
    }

 function testFunc(userid, password) {
     var invocationData = {
        adapter : 'myAdapter',
        procedure : 'myProc',
        parameters : [ userid, password ],
    };

    WL.Client.invokeProcedure(invocationData,{
       onSuccess : loadSuccess,
       onFailure : loadFailure
   });
}

当我测试适配器时,只需调用它,响应就成功了,并且包含了我想要的所有响应信息。 那么,为什么在这里不调用onSuccess?

可能您需要从onSuccess和onFailure声明中删除参数括号,否则它会在分配时而不是在需要时运行函数:

WL.Client.invokeProcedure(invocationData,{
   onSuccess : loadSuccess,
   onFailure : loadFailure
});

由于您使用“ var”来定义onSuccess / onFailure回调,因此请确保它们在同一作用域内。 尝试提供内联回调,例如

WL.Client.invokeProcedure(invocationOptions, {
   onSuccess: function(data){ alert....},
   onFailure: function(data){ alert....}
})

您必须在html文件中声明initOptions.js,main.js和messages.js,这些文件将使用指向适配器的控制器..

否则invokeProcedure将是未定义的

只需转到您的html文件,但是此代码直接在结束标记之前位于body标记的末尾

<script src="js/initOptions.js"></script>
<script src="js/main.js"></script>
<script src="js/messages.js"></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM