Основные свойства виджитов

В дополнение к только что описанным методам класс _Widget обладает также некоторыми особенно примечательными свойствами. Как и в случае методов, вы можете обращаться к этим свойствам, используя точечную нотацию. Обычно эти свойства используются исключительно для чтения:
id
Значением этого свойства является уникальный идентификатор, который присваивается диджиту. Если вы сами не предоставляете это значение, оно автоматически будет присвоено самим инструментарием Dojo. Вы никогда не должны изменять это значение, и в большинстве случаев вам вообще не придется пользоваться им.
lang
Инструментарий Dojo поддерживает возможность интернационализации, и значение этого свойства может использоваться для настройки таких особенностей, как язык, используемый для отображения диджита. По умолчанию значение этого свойства соответствует настройкам броузера, которые в свою очередь обычно соответствуют настройкам операционной системы.
domNode
Это свойство содержит ссылку на самый внешний узел DOM диджита. Это свойство указывает на узел, являющийся визуальным представлением диджита на экране. Обычно следует избегать прямых манипуляций с этим свойством, однако манипуляции с этим свой ством бывают удобны при отладке.


Как уже упоминалось ранее, в реализации класса _Widget по умолчанию это свойство устанавливается в методе buildRendering, и любые методы, переопределяющие buildRendering, должны принимать на себя ответственность за установку этого свойства, в противном случае могут происходить странные, почти мистические вещи. Если диджит не отображается на зкране, значение свойства равно undefined.
Чтобы внести ясность, ниже приводится фрагмент простого программного кода, а в соответствующем выводе в консоли Firebug можно увидеть все эти свойства. Отмечу еще раз, что все свойства унаследованы от класса _Widget и доступны через ключевое слово this, когда оно ссылается на контекст ассоциативного массива, который передается в третьем аргументе функции dojo.declare:
dojo.require("dijit._Widget");
dojo.addOnLoad(function() {
dojo.declare(
"dtdg.Foo",
dijit._Widget,
{
talk() : function() {
console.log("id:", this.id);
console.log("lang:", this.lang);
console.log("dir:", this.dir);
console.log("domNode:", this.domNode);
}
}
);
});
foo = new dtdg.Foo();
foo.talk();

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
Анатомия библиотеки Dijit
Быстрое создание прототипов виджетов в разметке
Ваш первый диджит: HelloWorld
Диджит HelloWorld (Дубль 1: Основа)
Диджит HelloWorld (Дубль 2: Изменение шаблона)

Вернуться в раздел: Dojo / Анатомия Dijit и жизненный цикл