Свойства пользовательских объектов в компоненте ExtJs - PullRequest
2 голосов
/ 26 января 2010

Как добавить пользовательские свойства в объекты управления в ExtJ.

Например:

var button = new Ext.Button({
    text:"something",
    id:"somethingId"
})

Этот элемент управления поступает с сервера динамически, и я хочу написать собственное свойство, как показано ниже:

var button = new Ext.Button({
    text:"something",
    id:"somethingId",
    customField : "I created this one"
})

и тогда я хочу достичь этого, как показано ниже:

alert(button.customField);

В моем реальном случае я делаю этот тип для создания AsyncTreeNode на сервере и отправки их клиенту и добавления их через TreeLoader, и эти узлы помогают мне показать картинку при нажатии, поэтому я хочу, чтобы у них был адрес поле, чтобы я мог получить его в TreePanel событии щелчка, которое также возвращает нажатый узел:

listeners:{
   click : function(clickedNode,eObj){
       alert(node.customFields);   
   }
}

Я попробовал, но там было сказано undefined. Обычно, поскольку JavaScript свободен, я могу легко изменять объекты, но в этом случае он не будет работать так, как я ожидал.

Заранее спасибо ....

Ответы [ 2 ]

2 голосов
/ 26 января 2010

Я нашел решение.

ExtJs предоставляет свойство attributes для получения всех пользовательских атрибутов:

Атрибуты: Объект Атрибуты, предоставленные для узла. Вы можете использовать это свойство для доступа к любым пользовательским атрибутам, которые вы указали.

Таким образом, после того, как я внедрил пользовательское свойство во время начальной конфигурации, я получил их с помощью атрибутов:

listeners: {
            click: function(node) {
                $("#nodeId").val(node.id);
                if (node.isLeaf()) {
                    $("#galleryImage").attr("src", "../Galleries/" + node.attributes.image);
                }
            }
        }
0 голосов
/ 13 октября 2011

Включите в ваш класс следующий код:

config : {
    renderTo: null,
},

constructor: function(config)
{
    this.initConfig(config);

    return this;
},

Таким образом, методы getter и setter, методы для каждого свойства config автоматически генерируются в прототип класса во время создания класса, если в классе эти методы уже не определены. ... и вы можете получить доступ к свойствам по своему желанию.

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