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 |