我有主页和菜单。在菜单中,我可以选择"玩家",在那里我可以看到所有团队成员的列表,点击每个玩家并查看更多详细信息。一切正常,直到我回到主页并再次回到"玩家"部分,然后点击播放器不再有效,即使控制台没有显示任何错误。
我一直试图解决这个问题太久了,所以我需要你的帮助。
"玩家"或用户控制器代码:
Ext.define('HockeyTeamManagementSystem.controller.Users', {
extend: 'Ext.app.Controller',
config: {
refs: {
Users: 'users',
UserInformationTab: '#UserInformationTab',
AddUserButton: '#AddUser',
BackToMenuButton: '#BackToMenu'
},
control: {
"userlist": {
itemtap: 'onListItemTap'
},
"Users": {
backButtonCommand: 'backButtonCommand',
BackToMenuCommand: 'backToMenuCommand'
}
}
},
onListItemTap: function(dataview, index, target, record, e, eOpts) {
var user = Ext.create("HockeyTeamManagementSystem.view.UserDetailTabs", {
title: record.data.name +" "+ record.data.lastname,
record: record
});
this.getUsers().push(user);
this.getUserInformationTab().setData(record.data);
this.getAddUserButton().hide();
this.getBackToMenuButton().hide();
},
backButtonCommand: function() {
this.getAddUserButton().show();
this.getBackToMenuButton().show();
},
backToMenuCommand: function() {
var Dashboard = Ext.create('HockeyTeamManagementSystem.view.Dashboard');
Ext.Viewport.setActiveItem(Dashboard);
}
});
答案 0 :(得分:1)
我要面对同样的问题,你能告诉我"用户列表"引用映射,因为它不包含在当前控制器中。我希望,问题可能是因为"嵌套组件"。
答案 1 :(得分:1)
查看代码似乎,
每当你点击列表时,新实例都会被创建,所以关键是itemtap只附加了第一个视图实例,以了解更多有关此内容的信息,请参阅组件生命周期。
使用Ext.ComponentQuery.query()选择器来检查已创建的视图实例数,或者只是检查浏览器的开发人员工具。
如果你想在每次销毁它时创建一个视图,那么先创建。
它应该解决问题
始终有良好的做法将视图添加到相应的控制器,而不是在应用程序级别添加,它应该减少应用程序的加载时间。