簡體   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