ストア、モデル、ビュー(ツールバー)を備えたコントローラーがあります:
Ext.define('Cc.controller.Headers', {
extend: 'Ext.app.Controller',
stores: ['User'],
models: ['Agent'],
views: ['Header'],
refs: [
{ ref: 'navigation', selector: 'navigation' },
{ ref: 'tabPanel', selector: 'tabpanel' },
{ ref: 'head', selector: 'head' },
{ ref: 'logoutButton', selector: 'head button[action=logout]'},
{ ref: 'helpButton', selector: 'head button[action=help]'}
],
init: function() {
this.control({
'head button[action=logout]': {
beforerender: this.initLogoutButton,
click: this.onClickLogoutButton
},
'head button[action=help]':{
click: this.onClickHelpButton
}
});
},
initLogoutButton: function(a){
var store = this.getUserStore(),
button = this.getLogoutButton();
store.load();
var user = this.getAgentModel();
button.setText('Logout ['+user.get('lastname')+']');
console.log(store.count());
},
onClickLogoutButton: function(view, record, item, index, e){
alert('déconnexion');
},
onClickHelpButton: function(view, record, item, index, e){
alert('help');
}
});
私の問題はinitLogoutButton関数にあります。ajaxリクエストから取得したユーザーの唯一のインスタンスを取得する必要があります(常に1つのインスタンスのみ)。jsコンソールでリクエストを確認できます。すべて問題ありませんが、このデータで変数や配列を設定することはできません。
さらに、store.count()関数は0を返します。