2012-06-06 5 views
2

Я использую ExtJs 4.1 и DeftJs.ExtJs - как установить идентификатор компонента при использовании нескольких экземпляров

При одновременном использовании нескольких экземпляров одних и тех же представлений возникает проблема обращения к компоненту с учетом id: 'abc', поскольку все экземпляры будут иметь одинаковый идентификатор.

Как я могу назвать идентификаторы, чтобы предотвратить это?

Одним из вариантов является создание компонентов динамически.

Другой вариант, который я предпочел бы зовёт компонент по идентификатору только определенной точки зрения, как:

this.getView.getComponent('x').getId('abc')

ответ

0

Я стараюсь избегать глобальных идентификаторов и использовать this.getView().getComponent() от контроллера, чтобы получить доступ к моей точке зрения. При необходимости я дополнительно использую уникальную строку в моем имени.

2

Если вы можете установить родительский элемент с уникальным идентификатором, вы можете использовать Itemid собственность на дочерние элементы. Пример этого из документации Сенча в (из ниже ссылки):

var c = new Ext.panel.Panel({ // 
height: 300, 
renderTo: document.body, 
layout: 'auto', 
items: [ 
    { 
     itemId: 'p1', 
     title: 'Panel 1', 
     height: 150 
    }, 
    { 
     itemId: 'p2', 
     title: 'Panel 2', 
     height: 150 
    } 
] 
}) 
p1 = c.getComponent('p1'); // not the same as Ext.getCmp() 
p2 = p1.ownerCt.getComponent('p2'); // reference via a sibling 

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.AbstractComponent-cfg-itemId

+0

Спасибо, но это не относится к mvc и многим экземплярам одного и того же вида/контроллеров, так как я не могу установить уникальные идентификаторы в таком виде. Я хочу обратиться к конкретному виду через свой контроллер. – Patrick

Смежные вопросы