Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Не работает lookupReference (https://javascript.ru/forum/extjs/56886-ne-rabotaet-lookupreference.html)

khusamov 08.07.2015 14:02

Не работает lookupReference
 
Почему lookupReference не работает в данном коде?

Ext.define("MyPanel", {
            extend: "Ext.panel.Panel",
            xtype: "mypanel",
            
            config: {
                param1: null
            },
            
            updateParam1: function(title) {
                var mypanel2 = this.lookupReference("mypanel2");
                mypanel2.add({
                    xtype: "panel",
                    title: "Тыртыртыр"
                });
            },
            
            items: [{
                reference: "mypanel2",
                xtype: "panel",
                title: "Панель2"
            }]
        });


На 11й строке mypanel2 = null

Код в песочнице https://fiddle.sencha.com/#fiddle/q2f

nohuhu 08.07.2015 23:44

Потому что владельцем ссылок по умолчанию является ViewController, а не View. У вас два варианта: использовать ViewController и уже в нём вызывать lookupReference, или задать флаг referenceHolder: true на нужном вам View (в данном случае, панели mypanel).

Вот тут подробнее: http://docs.sencha.com/extjs/6.0/6.0...eferenceHolder

khusamov 09.07.2015 08:46

а что такое Владелец Ссылок? где об этом почитать?

novikov 09.07.2015 12:15

this.getViewController().lookupReference("mypanel2");


или поместить updateParam1 во ViewController, чтобы придать представлению более декларативный характер (без методов вообще)

nohuhu 09.07.2015 23:18

http://docs.sencha.com/extjs/6.0/6.0...iner.Container, раздел "References and Reference Holders".


Часовой пояс GMT +3, время: 04:37.