您還可以通過定義後退按鈕及其引用來更好地控制自己,而不是使用默認值。
Ext.define('Mov.view.BackButton', {
extend: 'Ext.Button',
alias: 'widget.backbutton',
config: {
hidden: true,
id: 'back',
ui: 'back',
text: 'Back',
backStack: {
}
},
addToBackStack: function(dispatchOptions) {
var found = false;
this.backStack.forEach(function(el) {
found = found || (Ext.encode(el) == Ext.encode(dispatchOptions));
});
if (!found) {
this.backStack.push(dispatchOptions);
}
this.show();
},
clearBackStack: function() {
this.backStack = [];
this.hide();
},
handler: function(button, event) {
var dispatchOptions = this.backStack.pop();
Ext.dispatch(dispatchOptions);
if(this.backStack.length === 0) {
this.hide();
}
}
});
然後在您的應用的導航欄上應用此小部件。 (on初始化視圖的初始化效果很好)。
nav = this.getNavigationBar(),
nav.setBackButton(Ext.widget('backbutton'));
@jurodr有一個很好的路由,引用和控制的例子,這個自定義組件很適合。