2

私は extjs4 MVC で作業しています。ここで、ページを表示したいポイントでスタックします。そのページにリンクがあるとします。最初のビューのリンクをクリックした後、別のビューにリダイレクトされます。私の要件2番目のビューボタンをクリックするときに、最初のビューまたはエイリアスの参照またはエイリアス名を取得したいです。

ここにビューコードがあります:-
1) 最初のビュー:--

Ext.define('App.view.left.WordOfTheDay',    {
    extend:'Ext.panel.Panel',
    alias:'widget.WordOfTheDay',
    localized:true,

    xMore:"more",
    xTitle:"Word Of The Day",
    initComponent: function () {
        Ext.apply(this, {
            title:this.xTitle,

            items:[
                   {
                     xtype:'panel',
                     html:'<br>sdf<br>sdfsdf<br>sdsddf<br><a href="#" id="wordOfDay">'+this.xMore+'</a>',
                   }]
        });
        this.callParent();
    }
});// End of login class

およびその設計 ここに画像の説明を入力 2) 2 番目のビューの設計:-

ここに画像の説明を入力

最初のビューをクリックすると、2番目のビューが表示されます.2番目のビューのキーログインボタンをクリックすると、最初のビューの参照または最初のビューのエイリアスを取得したい..作業しましたが、解決策が得られませんでした.私にいくつかのガイドライン。

4

1 に答える 1

0

考えられる解決策の 1 つは、各ビューに一意の ID を割り当て、Ext.ComponentManager.get('view-id')を使用して参照を取得することです。例えば:

Ext.define('MyPanel1', {
  extend: 'Ext.Component',
  xtype: 'mypanel1',

  id: 'my-panel-1',
  html: 'Panel 1 <a href="#">Go</a>',

  initComponent: function() {
    this.on('afterrender', function() {
      this.getEl().down('a').on('click', function() {
        Ext.ComponentManager.get('my-panel-2').show(); // go to second view
        this.hide();
      }, this);
    }, this);
  }
});

Ext.define('MyPanel2', {
  extend: 'Ext.Component',
  xtype: 'mypanel2',

  id: 'my-panel-2',
  html: 'Panel 2 <a href="#">Back</a>',

  initComponent: function() {
    this.on('afterrender', function() {
      this.getEl().down('a').on('click', function() {
        Ext.ComponentManager.get('my-panel-1').show(); // back to first view
        this.hide();
      }, this);
    }, this);
  }
});

Ext.onReady(function() {
  Ext.create('Ext.container.Container', {
    items: [
      {
        xtype: 'mypanel1',
      },
      {
        xtype: 'mypanel2',
        hidden: true,
      }
    ],
    renderTo: Ext.getBody()
  });
});

プランカーで試す

于 2013-05-30T07:47:43.330 に答える