0

У меня есть главная страница с меню. В меню я могу выбрать раздел «Игроки», где я могу увидеть список всех игроков команды, нажать на каждого игрока и посмотреть более подробную информацию. Все работает нормально, пока я не вернусь на главную страницу и снова в раздел «Игроки», затем нажмите на плеер, который больше не работает, даже консоль не показывает никаких ошибок.Нажмите на элемент списка работает только один раз

Я пытался решить эту проблему слишком долго, поэтому мне нужна Ваша помощь. Код

«Игроки» или пользователи контроллера:

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

Глядя на код, кажется, что,

каждый раз, когда вы нажмете на список нового экземпляра будет создаваться, так дело itemtap только с приложением первого экземпляра зрения, чтобы знать больше об этом см жизненный компонент цикла ,

использовать Ext.ComponentQuery.query(), чтобы проверить, сколько экземпляров представления было создано или просто проверить инструмент разработчика в браузере.

Если вы хотите создать представление каждый раз, когда вы должны его уничтожить, сначала создайте.

это должно решить проблему

Всегда хорошая практика, чтобы добавить вид к соответствующему контроллеру, а затем добавляя на уровне приложения, это должно уменьшить время загрузки приложения.

1

я столкнулась с такой же проблемой, Вы можете сказать мне «USERLIST» эталонного сопоставления, поскольку он не включен в текущем контроллере. Надеюсь, проблема может быть из-за «вложенных компонентов».

Смежные вопросы