[英]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.