Ext4 Component Show - PullRequest
       1

Ext4 Component Show

1 голос
/ 15 декабря 2011

Пожалуйста, будь язычником, я нахожусь в процессе изучения Ext4.

Когда я запускаю код ниже, я получаю эту ошибку: Uncaught TypeError: Cannot call method 'getCount' of undefined. Когда я закомментирую код: list.show() в NS.view.ImplementationStatus.Legend, ошибка исчезнет. Поэтому я думаю, что это как-то связано с этим, но я не совсем понимаю, откуда это взялось.

Ext.define('NS.controller.ImplementationStatuses', {
    extend: 'Ext.app.Controller',
    stores: ['ImplementationStatuses'],
    models: ['ImplementationStatus'],
    views: ['ImplementationStatus.Legend'],
    init: function() {
        var view = Ext.widget('statusLegend');
    }
});

Ext.define('NS.view.ImplementationStatus.Legend', {
    extend: 'Ext.window.Window',
    alias : 'widget.statusLegend',
    views: ['ImplementationStatus.List'],
    initComponent: function() {
        console.log("Initializing NS.view.ImplementationStatus.Legend");

        // This creates the list of statuses
        var list = Ext.create('NS.view.ImplementationStatus.List', {});
        list.show();

        // Define the list of items
        this.items = [list];
    }
});

Ext.define('NS.view.ImplementationStatus.List', {
    extend: 'Ext.panel.Panel',
    alias : 'widget.statusList',
    initComponent: function() {
        console.log("Initializing NS.view.ImplementationStatus.List");
    }
});

Ответы [ 2 ]

2 голосов
/ 16 декабря 2011

Рекомендованным способом расширения классов Ext Component является использование функции initComponent, которую вы используете, но в конце вам нужно вызвать this.callParent(arguments);

Этот шаблон можно использовать во всех видах в руководствах: http://docs.sencha.com/ext-js/4-0/#!/guide/application_architecture

1 голос
/ 16 декабря 2011

Прежде всего, когда вы создаете переопределения для таких методов, как init, initComponent, вы также должны вызывать метод из исходного класса. Например:

Ext.window.Window.prototype.initComponent.apply(this, arguments);

После завершения методов ошибка больше не отображается.

...