Sencha touch 2 Ext.Msg.confirm-对象[对象窗口]没有方法'';
我试图在按下注销按钮时设置一条确认消息,如果用户单击“是”,则会重定向到名为“myContainer”的容器中的面板控制。消息看起来很好,但当我选择“是”时,我会收到一个错误(假设因为容器未初始化)。我在控制器上设置了一个容器的引用,但这似乎没有帮助。任何关于如何正确处理此类确认的建议都将不胜感激。谢谢 确认信息:Sencha touch 2 Ext.Msg.confirm-对象[对象窗口]没有方法'';,sencha-touch-2,sencha-architect,Sencha Touch 2,Sencha Architect,我试图在按下注销按钮时设置一条确认消息,如果用户单击“是”,则会重定向到名为“myContainer”的容器中的面板控制。消息看起来很好,但当我选择“是”时,我会收到一个错误(假设因为容器未初始化)。我在控制器上设置了一个容器的引用,但这似乎没有帮助。任何关于如何正确处理此类确认的建议都将不胜感激。谢谢 确认信息: onLogoutTap: function(button, e, options) { Ext.Msg.confirm("Logout", "Do you wish to conti
onLogoutTap: function(button, e, options) {
Ext.Msg.confirm("Logout", "Do you wish to continue?", function(button){
if (button == 'yes') {
//doesn't work:
this.getMyContainer().setActiveItem(1);
} else {
return false;
}
});
}
控制器中的myContainer引用
myContainer: '#myContainer'
错误消息:
Uncaught TypeError: Object [object Window] has no method 'getMyContainer'
在这里:
此
指的是您的函数对象,而不是控制器
如果要调用控制器的该方法,请尝试:
Ext.getApplication().getController(“您的控制器名称”).getMyContainer()代码>
希望有帮助。这里:
此
指的是您的函数对象,而不是控制器
如果要调用控制器的该方法,请尝试:
Ext.getApplication().getController(“您的控制器名称”).getMyContainer()代码>
希望有帮助。我经常使用的一个小技巧是
onLogoutTap: function(button, e, options) {
var controller = this;
Ext.Msg.confirm("Logout", "Do you wish to continue?", function (button) {
if (button == 'yes') {
//doesn't work:
controller.getMyContainer().setActiveItem(1);
} else {
return false;
}
});
}
这样,您仍然可以使用关键字this
访问函数对象
希望这有帮助我经常使用的一个小技巧是
onLogoutTap: function(button, e, options) {
var controller = this;
Ext.Msg.confirm("Logout", "Do you wish to continue?", function (button) {
if (button == 'yes') {
//doesn't work:
controller.getMyContainer().setActiveItem(1);
} else {
return false;
}
});
}
这样,您仍然可以使用关键字this
访问函数对象
希望这有帮助另一种方法是
onLogoutTap: function(button, e, options) {
Ext.Msg.confirm("Logout", "Do you wish to continue?", function(button){
if (button == 'yes') {
//DOES WORK!!
this.getMyContainer().setActiveItem(1);
} else {
return false;
}
}, this);
}
只需在函数定义后添加'scope'参数。另一种方法是
onLogoutTap: function(button, e, options) {
Ext.Msg.confirm("Logout", "Do you wish to continue?", function(button){
if (button == 'yes') {
//DOES WORK!!
this.getMyContainer().setActiveItem(1);
} else {
return false;
}
}, this);
}
只需在函数定义后添加“scope”参数。感谢您提供此选项。感谢您提供此选项