ExtJS расширение компонента, не в состоянии сделать это .indById () - PullRequest
0 голосов
/ 12 января 2010

Я знаю, что это может быть странный вопрос, потому что у меня возникают проблемы при попытке найти свой предмет по идентификатору. Позвольте мне объяснить, что я пытаюсь сделать ...

Вот что можно ...

var myMenu = new Ext.menu.Menu({
    id: "my-menu",
    items: [{
        id: "first-item",
        text: "hello"
    }]
});

Когда я делаю это ...

myMenu.findById('first-item');  // it will return a component...

ОДНАКО, когда я пытаюсь расширить его таким образом ...

NewMenu = Ext.extend(Ext.menu.Menu, {

    id: "",
    win_id: "",

    initComponent: function(){
         // All the neccessary code
    },

    onRender: function(){
         // codes...
    },

    // Override the add function
    add: function(){
         this.findById(this.win_id); // return NULL
    }
});

Извините за мои пропущенные коды. Я понимаю, что это может быть в том же духе, что объект не рендерится после добавления элемента, поэтому он вернет NULL. Есть ли способ, которым я могу это сделать? Я использую ExtJS 3.0, следовательно, нет метода «onAdd» для переопределения. Не уверен, что это поможет.

Дайте мне знать, если я пропущу какую-либо важную информацию.

Приветствия и спасибо, мил Mickey

Ответы [ 2 ]

1 голос
/ 14 января 2010

у вас есть это в NewMenu.initComponent?

NewMenu.superclass.initComponent.call(this);
0 голосов
/ 12 января 2010

Второй параметр Ext.extend() должен быть объектом , а не функцией:

NewMenu = Ext.extend(Ext.menu.Menu, {

    id: "",
    win_id: "",

    initComponent: function(){
         // All the neccessary code
    },

    ...

РЕДАКТИРОВАТЬ: если синтаксис не проблема, то я думаю, что вы правы насчет that the object has not render after it added the item. Я думаю, что это важное ограничение: компонент не инициализируется полностью до тех пор, пока базовый элемент DOM не будет вставлен и отображен в документе.

Может быть, я мог бы предложить что-то, если бы вы объяснили, что вы хотите сделать с возвращаемым значением this.findById(this.win_id), например, отложить инициализацию пунктов меню до тех пор, пока не будет отображен хотя бы элемент win_id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...