Mercurial > pub > Impl
diff Lib/IMPL/Web/View/TTControl.pm @ 265:6b6d4b2275a1
improved documentation
author | cin |
---|---|
date | Thu, 10 Jan 2013 03:25:02 +0400 |
parents | f48a1a9f4fa2 |
children | bbc0da7ef90e |
line wrap: on
line diff
--- a/Lib/IMPL/Web/View/TTControl.pm Wed Jan 09 17:55:43 2013 +0400 +++ b/Lib/IMPL/Web/View/TTControl.pm Thu Jan 10 03:25:02 2013 +0400 @@ -142,39 +142,113 @@ =head1 SYNPOSIS +=begin text + +[% + META version = 1; + BLOCK INIT; + # this is a document scope + dojo.require.push( 'dijit/form/Input' ); + END; + BLOCK CTOR; + # local to this block + TPreview = require('My/Org/TextPreview'); + + # init control props + this.dojoClass = this.dojoClass || 'dijit.form.Input'; + this.visualClass = this.visualClass || 'classic'; + this.childNodes = []; + + # init content + FOREACH text IN this.data; + this.childNodes.push( TPreview.new('preview', nodeValue = text ) ); + END; + + END; +%] + +<div class="$this.visualClass" data-dojo-type="$this.dojoClass"> + [% FOREACH node IN this.childNodes %] + [% node.Render() %] + <hr /> + [% END %] +</div> + +=end text + =head1 DESCRIPTION +Представляет собой фрагмент документа, который имеет шаблон для отображения, +набор свойств и т.п. + =head2 BLOCKS +=head3 META + +Атрибуты C<META> C<layout>, C<title> будут перенесены в свойства элемента +управления. + =head3 INIT -Данный блок шаблона управления выполняется один раз при создании первого экземпляра элемента управления, -может использоваться для формирования заголовочной части документа, скрипта подключающего ajax модули -при необходимости и т.п. +Данный блок шаблона управления выполняется один раз при создании первого +экземпляра элемента управления, в пространстве имен документа. Может +использоваться для формирования заголовочной части документа, скрипта +подключающего C<js> модули и т.п. + +Выполнение данного блока производится фабрикой элементов управления. =head3 CTOR -данный блок выполняется каждый раз при создании нового экземпляра элемента управления, при этом переменная C<this> -указывает на эземпляр элемента упарвления. Данный блок можно использовать для инициализации свойств элемента +данный блок выполняется каждый раз при создании нового экземпляра элемента +управления, при этом переменная C<this> указывает на эземпляр элемента +упарвления. Данный блок можно использовать для инициализации свойств элемента управления. =head3 RENDER -Данный блок выполняется при вызове метода C<Render()>, вывод данного блока и есть результат отображения элемента управления. -Если в шаблоне нет блока C<RENDER>, то сам шаблон считается таковым. +Данный блок выполняется при вызове метода C<Render()>, вывод данного блока и +есть результат отображения элемента управления. Если в шаблоне нет блока +C<RENDER>, то сам шаблон считается таковым. =head2 TEMPLATE VARS -Каждый шаблон имеет собственное пространство имен, унаследованное от пространства имен фабрики элементов (которая в свою очередь наследует контекст документа). -В шаблоне могут определяться новые переменные, которые разделяются между блоками. Также доступны стандартные переменные +Каждый шаблон имеет собственное пространство имен, вложенное в пространство имен +фабрики элементов (которая разделяет пространство имен документа). В шаблоне +могут определяться новые переменные, однако они останутся локальными для блоков. + +Чтобы передать данные между блоками следует использовать ссылку на элемент +управления C<this>. + +=begin text + +[% + BLOCK CTOR; + this.extraCssClass = 'active'; + text = "this text will gone"; + END; +%] + +<div class="$this.extraCssClass">some text $text</div> + +=end text + +В примере выше переменная C<$text> установленная в конструкторе шаблона, при +отображении элемента управления будет неопределена. =over -=item * C<this> ссылка на объект элемента управления +=item * C<this> + +ссылка на объект элемента управления + +=item * C<component> -=item * C<component> ссылка на текущий шаблон, устанавливается автоматически в методе C<Template::Context::process>. +ссылка на текущий шаблон, устанавливается автоматически в методе +C<Template::Context::process>. -=item * C<template> ссылка на шаблон элемента управления, для совместимости с C<TT> +=item * C<template> + +ссылка на шаблон элемента управления, для совместимости с C<TT> =back @@ -184,8 +258,9 @@ =item * C<[get]context> -Контекст элемента управления, хранит пременные шаблона. Наследуется от контекста фабрики элементов управления, который -наследуется от контекста документа. +Контекст элемента управления, хранит пременные шаблона. Передается в +конструкторе. Фабрика элементов управления создает новый контекст пространство +имен которого вложено в пространство имен документа. =item * C<[get,set]template> @@ -193,11 +268,10 @@ =item * C<AUTOLOAD> -Для удобства работы с шаблоном, элементы управления предоставляю доступ к своим свойствам через метод C<AUTOLOAD>. +Для удобства работы с шаблоном, элементы управления предоставляю доступ к своим +свойствам через метод C<AUTOLOAD>. Имена свойств должны начинаться со строчной +буквы. =back - -C<lang ru> - =cut \ No newline at end of file