我正在尝试从函数SetLoginInfo中调用窗口小部件中的函数SetLoginButtonLabel - SetLoginInfo是从窗口小部件LogInDB回调。当我尝试使用this.SetLoginButtonLabel调用它时,我得到错误SetLoginButtonLabel未定义。我也在尝试如下所示,但这也不起作用。我想从SetLoginInfo中调用几个不同的函数 - 我如何使用hitch或其他方法来使其工作?
由于
---小工具登录
...
postCreate: function() {
var SetLab = lang.hitch(this, "SetLoginButtonLabel");
}
Login: function() //call the database
{
LoginDB.Login("http://xxx/John Smith", this.SetLoginINfo)
},
SetLoginInfo: function(LoginData) //call back from LoginDB
{
//I've tried:
this.SetLogingButtonLabel("status"); //get an undefined error
//and
SetLab("Logout");//this just seems to get lost
},
SetLoginButtonLabel: function(status)
{
//
}
.......
--- Widget LoginDB
define(['dojo/store/Memory', 'dojo/_base/xhr', "dojo/data/ObjectStore", 'dojo/_base/json'],
//functions to get data and fill data stores
function (Memory, xhr, ObjectStore) {
var TicketStore;
return {
//login
Login: function (url, callback) {
xhr.get({//send data
url: url,
handleAs: "json",
load: function (result) {
var LoginData = result;
callback(LoginData);
},
error: function (err) { }
});
}
}
});
答案 0 :(得分:0)
这使它起作用:
LoginDB.Login(s, lang.hitch(this, this.SetLoginInfo));
我在SetLoginInfo中的所有调用都把它放在前面:
this.SetLoginButtonLabel("Logged In");