我正在使用Worklight Ibm开发混合应用程序,使用sencha touh进行UI。
在我的控制器中我正在调用这样的HTTPAdapter:
var invocationData = {
adapter : 'UserHttpAdapter',
procedure : 'getPersonneMorale',
parameters : []
};
WL.Client.invokeProcedure(invocationData, {
onSuccess : function() {
console.log('Signed in.');
var loginView = this.getLoginView();
mainMenuView = this.getMainMenuView();
loginView.setMasked(false);
Ext.Viewport.animateActiveItem(mainMenuView, this
.getSlideLeftTransition());
},
onFailure : function(){
console.log('failure');
},
});
但是我收到了这个错误:
07-07 11:43:45.812: E/NONE(31172): [http://<domain>:<port>/WLErsalMobileTest/apps/services/api/ErsalMobileTest/android/query] exception. TypeError: Object #<Object> has no method 'getLoginView'
07-07 11:43:45.832: D/CordovaLog(31172): file:///android_asset/www/default/worklight/worklight.js: Line 3333 : Uncaught TypeError: Object #<Object> has no method 'getLoginView'
07-07 11:43:45.832: E/Web Console(31172): Uncaught TypeError: Object #<Object> has no method 'getLoginView':3333
当我执行代码时:
signInSuccess : function() {
console.log('Signed in.');
var loginView = this.getLoginView();
mainMenuView = this.getMainMenuView();
loginView.setMasked(false);
Ext.Viewport.animateActiveItem(mainMenuView, this.getSlideLeftTransition());
},
没有调用它适用的适配器。
你能帮帮我吗?
谢谢
答案 0 :(得分:0)
尝试执行以下操作:
WL.Client.invokeProcedure.apply(this, [invocationData, callbackFunction])
其中callbackFunction是您上面的回调。我认为问题是回调上下文中没有指定变量'this',因此通过使用apply,您指定'this'应该是您指定的值。尝试一下,看看它是否有效,虽然我不确定它是否能解决你的问题,因为我不知道它是否会在回调函数中使用给定的'this'。