0

アプリケーションにナビゲーションを追加しようとしています。アプリケーションでいくつかのコントローラーを定義しているので、this.getApplication().getController('SomeController'). NavigationView で SomeController のビュー インスタンスをプッシュしたいと考えています。これは使用すると正常に機能しますpush({xtype: 'someView'})が、コントローラーでビューを変更しようとすると、未定義であると表示されます。

これは、プッシュしたビューがコントローラーのビューと同じではないためだと思います。これが私のコントローラーのコードサンプルです:

config: {
    refs: {
        someView: {

            selector: '#someView',
            xtype: 'someView'
        }
    },
},
store: null,
setStore: function(){
 //creating store...
 //...
 someView.setStore(this.store);
}

そして、これは私の見解です:

Ext.define('EpaMobile.view.SomeView', {
extend: 'Ext.dataview.List',
alias: 'widget.someView',
xtype: 'someView',
requires: ['Ext.field.Search', 'Ext.Toolbar'],
4

1 に答える 1

0

コントローラーで参照されたときにビューitemIdをセレクターとして使用できるようにします。aliasともxtype同じことなので、エイリアスをそのままにしてxtype. したがって、ビューは次のようになります。

Ext.define('EpaMobile.view.SomeView', {
    extend: 'Ext.dataview.List',
    alias: 'widget.someView',
    requires: ['Ext.field.Search', 'Ext.Toolbar'],
    config: {
        ...
        itemId: 'someViewItemId',        
        ...
    }

    ...
}

最後に、refブロックを次のように変更します。

...
refs: {
    someView: {
        selector: '#someViewItemId',
        xtype: 'someView',
        autoCreate: true
    }
},
...

push({xtype: 'someView'})これで、エラーが発生することなく使用できるようになりundefinedます。

于 2013-05-06T16:20:51.410 に答える