2

ビューポートをレンダリングした後に何かを行うために、view.Viewportに「アフターレンダー」リスナーを追加したいと思います。

誰かがこれを行う方法を知っていますか?

私のコードは、

view.Viewport.js

Ext.define('App.view.Viewport', {
    extend: 'Ext.container.Viewport',
    alias: 'widget.viewport',
.
.
.

controller.Viewport.js

Ext.define('App.controller.Viewport', {
    extend: 'Ext.app.Controller',
    init: function (application) {
        if (this.inited) {
            return;
        }
        this.inited = true;

        //console.log(this.getViewport());
        this.getViewport().addListener('load', function () {
            console.log('AFTER RENDER'); // it does not work....
        });
.
.
.

ありがとうございました!

4

1 に答える 1

3

MVCアプリケーションアーキテクチャガイドは、その方法を正確に示しています。

ドキュメントから:

Ext.define('AM.controller.Users', {
    extend: 'Ext.app.Controller',

    init: function() {
        this.control({
            'viewport > panel': {
                render: this.onPanelRendered
            }
        });
    },

    onPanelRendered: function() {
        console.log('The panel was rendered');
    }
});

これをあなたのコードと一致させると、次のようになります。

Ext.define('App.controller.Viewport', {
    extend: 'Ext.app.Controller',

    init: function() {
        this.control({
            'viewport': {
                afterrender: this.onViewportRendered
            }
        });
    },

    onViewportRendered: function() {
        console.log('The viewport was rendered');
    }
});
于 2012-06-11T21:46:45.137 に答える