Mercurial > pub > Impl
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 264:c9c2ec29793f | 265:6b6d4b2275a1 |
|---|---|
| 140 | 140 |
| 141 C<IMPL::Web::View::TTControl> | 141 C<IMPL::Web::View::TTControl> |
| 142 | 142 |
| 143 =head1 SYNPOSIS | 143 =head1 SYNPOSIS |
| 144 | 144 |
| 145 =begin text | |
| 146 | |
| 147 [% | |
| 148 META version = 1; | |
| 149 BLOCK INIT; | |
| 150 # this is a document scope | |
| 151 dojo.require.push( 'dijit/form/Input' ); | |
| 152 END; | |
| 153 BLOCK CTOR; | |
| 154 # local to this block | |
| 155 TPreview = require('My/Org/TextPreview'); | |
| 156 | |
| 157 # init control props | |
| 158 this.dojoClass = this.dojoClass || 'dijit.form.Input'; | |
| 159 this.visualClass = this.visualClass || 'classic'; | |
| 160 this.childNodes = []; | |
| 161 | |
| 162 # init content | |
| 163 FOREACH text IN this.data; | |
| 164 this.childNodes.push( TPreview.new('preview', nodeValue = text ) ); | |
| 165 END; | |
| 166 | |
| 167 END; | |
| 168 %] | |
| 169 | |
| 170 <div class="$this.visualClass" data-dojo-type="$this.dojoClass"> | |
| 171 [% FOREACH node IN this.childNodes %] | |
| 172 [% node.Render() %] | |
| 173 <hr /> | |
| 174 [% END %] | |
| 175 </div> | |
| 176 | |
| 177 =end text | |
| 178 | |
| 145 =head1 DESCRIPTION | 179 =head1 DESCRIPTION |
| 146 | 180 |
| 181 Представляет собой фрагмент документа, который имеет шаблон для отображения, | |
| 182 набор свойств и т.п. | |
| 183 | |
| 147 =head2 BLOCKS | 184 =head2 BLOCKS |
| 148 | 185 |
| 186 =head3 META | |
| 187 | |
| 188 Атрибуты C<META> C<layout>, C<title> будут перенесены в свойства элемента | |
| 189 управления. | |
| 190 | |
| 149 =head3 INIT | 191 =head3 INIT |
| 150 | 192 |
| 151 Данный блок шаблона управления выполняется один раз при создании первого экземпляра элемента управления, | 193 Данный блок шаблона управления выполняется один раз при создании первого |
| 152 может использоваться для формирования заголовочной части документа, скрипта подключающего ajax модули | 194 экземпляра элемента управления, в пространстве имен документа. Может |
| 153 при необходимости и т.п. | 195 использоваться для формирования заголовочной части документа, скрипта |
| 196 подключающего C<js> модули и т.п. | |
| 197 | |
| 198 Выполнение данного блока производится фабрикой элементов управления. | |
| 154 | 199 |
| 155 =head3 CTOR | 200 =head3 CTOR |
| 156 | 201 |
| 157 данный блок выполняется каждый раз при создании нового экземпляра элемента управления, при этом переменная C<this> | 202 данный блок выполняется каждый раз при создании нового экземпляра элемента |
| 158 указывает на эземпляр элемента упарвления. Данный блок можно использовать для инициализации свойств элемента | 203 управления, при этом переменная C<this> указывает на эземпляр элемента |
| 204 упарвления. Данный блок можно использовать для инициализации свойств элемента | |
| 159 управления. | 205 управления. |
| 160 | 206 |
| 161 =head3 RENDER | 207 =head3 RENDER |
| 162 | 208 |
| 163 Данный блок выполняется при вызове метода C<Render()>, вывод данного блока и есть результат отображения элемента управления. | 209 Данный блок выполняется при вызове метода C<Render()>, вывод данного блока и |
| 164 Если в шаблоне нет блока C<RENDER>, то сам шаблон считается таковым. | 210 есть результат отображения элемента управления. Если в шаблоне нет блока |
| 211 C<RENDER>, то сам шаблон считается таковым. | |
| 165 | 212 |
| 166 =head2 TEMPLATE VARS | 213 =head2 TEMPLATE VARS |
| 167 | 214 |
| 168 Каждый шаблон имеет собственное пространство имен, унаследованное от пространства имен фабрики элементов (которая в свою очередь наследует контекст документа). | 215 Каждый шаблон имеет собственное пространство имен, вложенное в пространство имен |
| 169 В шаблоне могут определяться новые переменные, которые разделяются между блоками. Также доступны стандартные переменные | 216 фабрики элементов (которая разделяет пространство имен документа). В шаблоне |
| 217 могут определяться новые переменные, однако они останутся локальными для блоков. | |
| 218 | |
| 219 Чтобы передать данные между блоками следует использовать ссылку на элемент | |
| 220 управления C<this>. | |
| 221 | |
| 222 =begin text | |
| 223 | |
| 224 [% | |
| 225 BLOCK CTOR; | |
| 226 this.extraCssClass = 'active'; | |
| 227 text = "this text will gone"; | |
| 228 END; | |
| 229 %] | |
| 230 | |
| 231 <div class="$this.extraCssClass">some text $text</div> | |
| 232 | |
| 233 =end text | |
| 234 | |
| 235 В примере выше переменная C<$text> установленная в конструкторе шаблона, при | |
| 236 отображении элемента управления будет неопределена. | |
| 170 | 237 |
| 171 =over | 238 =over |
| 172 | 239 |
| 173 =item * C<this> ссылка на объект элемента управления | 240 =item * C<this> |
| 174 | 241 |
| 175 =item * C<component> ссылка на текущий шаблон, устанавливается автоматически в методе C<Template::Context::process>. | 242 ссылка на объект элемента управления |
| 176 | 243 |
| 177 =item * C<template> ссылка на шаблон элемента управления, для совместимости с C<TT> | 244 =item * C<component> |
| 245 | |
| 246 ссылка на текущий шаблон, устанавливается автоматически в методе | |
| 247 C<Template::Context::process>. | |
| 248 | |
| 249 =item * C<template> | |
| 250 | |
| 251 ссылка на шаблон элемента управления, для совместимости с C<TT> | |
| 178 | 252 |
| 179 =back | 253 =back |
| 180 | 254 |
| 181 =head1 MEMBERS | 255 =head1 MEMBERS |
| 182 | 256 |
| 183 =over | 257 =over |
| 184 | 258 |
| 185 =item * C<[get]context> | 259 =item * C<[get]context> |
| 186 | 260 |
| 187 Контекст элемента управления, хранит пременные шаблона. Наследуется от контекста фабрики элементов управления, который | 261 Контекст элемента управления, хранит пременные шаблона. Передается в |
| 188 наследуется от контекста документа. | 262 конструкторе. Фабрика элементов управления создает новый контекст пространство |
| 263 имен которого вложено в пространство имен документа. | |
| 189 | 264 |
| 190 =item * C<[get,set]template> | 265 =item * C<[get,set]template> |
| 191 | 266 |
| 192 C<Template::Document> Шаблон элемента управления. | 267 C<Template::Document> Шаблон элемента управления. |
| 193 | 268 |
| 194 =item * C<AUTOLOAD> | 269 =item * C<AUTOLOAD> |
| 195 | 270 |
| 196 Для удобства работы с шаблоном, элементы управления предоставляю доступ к своим свойствам через метод C<AUTOLOAD>. | 271 Для удобства работы с шаблоном, элементы управления предоставляю доступ к своим |
| 272 свойствам через метод C<AUTOLOAD>. Имена свойств должны начинаться со строчной | |
| 273 буквы. | |
| 197 | 274 |
| 198 =back | 275 =back |
| 199 | 276 |
| 200 | |
| 201 C<lang ru> | |
| 202 | |
| 203 =cut | 277 =cut |
