Nitrogen 学习过程实录(12)
2009-02-18 06:30
218 查看
7、Nitrogen 的元件(elements)
元件是构成Nitrogen动态网页的代码片断。元件由Erlang的记录(record)和支持模块(.erl文件)组成,用以告知编译器(rendering engine,直译是“渲染机”,感觉不符合汉语习惯),如何翻译成HTML内容。
许多Erlang元件有HTML的同等对应。例如,元件#span直接译成<span>。
(1) Nitrogen元件的标准属性
id – 元件的名字。
actions – 元件的行为。后面会讲述。
show_if – 值为true或false以显示或隐藏该元件。
class – 元件的CSS类名称。
style – 元件的CSS风格。
大多数元件还有其他特别属性。例如,元件#panel创建HTML标签div,其中就有属性body。元件#checkbox,创建HTML标签checkbox,其中包含着另一个元件text,用以管理checkbox中的文字。
(2) 元件树
元件可以组合成列表,或者嵌套构成复合结构。例如:
Body = #body { body=[
#panel { body=[
#label { text="This is a label." },
#label { id=label1, text="This is another label with a name." },
#button { id=button1, class=mybutton, text="Push Me" }
]}
]}
(3) 直接使用HTML正文
Nitrogen允许你在动态网页中,在元件外部直接书写HTML正文。例如:
Body = #body { body=[
#panel { body=[
#label { text="This is a label." },
"This is some <b>plain</b> HTML.",
#label { text="This is another label." },
"
This is some more HTML. Erlang allows for multiline strings
as long as you escape your double-quotes like this (/").
"
]}
]}
(4) 创建自定义元件
这十分简单。
首先,定义记录如下:
-record(myelement, {?ELEMENT_BASE, attr1, attr2}).
然后,创建名为element_myelement的支持模块。你的模块应该导出函数render(ControlID, Record),由其返回编译后的HTML正文。
render(ControlID, Record)
ControlID – 元件在HTML正文中的id。
Record – 类型为myelement的记录,其中的参数用以创建自定义控件。
元件是构成Nitrogen动态网页的代码片断。元件由Erlang的记录(record)和支持模块(.erl文件)组成,用以告知编译器(rendering engine,直译是“渲染机”,感觉不符合汉语习惯),如何翻译成HTML内容。
许多Erlang元件有HTML的同等对应。例如,元件#span直接译成<span>。
(1) Nitrogen元件的标准属性
id – 元件的名字。
actions – 元件的行为。后面会讲述。
show_if – 值为true或false以显示或隐藏该元件。
class – 元件的CSS类名称。
style – 元件的CSS风格。
大多数元件还有其他特别属性。例如,元件#panel创建HTML标签div,其中就有属性body。元件#checkbox,创建HTML标签checkbox,其中包含着另一个元件text,用以管理checkbox中的文字。
(2) 元件树
元件可以组合成列表,或者嵌套构成复合结构。例如:
Body = #body { body=[
#panel { body=[
#label { text="This is a label." },
#label { id=label1, text="This is another label with a name." },
#button { id=button1, class=mybutton, text="Push Me" }
]}
]}
(3) 直接使用HTML正文
Nitrogen允许你在动态网页中,在元件外部直接书写HTML正文。例如:
Body = #body { body=[
#panel { body=[
#label { text="This is a label." },
"This is some <b>plain</b> HTML.",
#label { text="This is another label." },
"
This is some more HTML. Erlang allows for multiline strings
as long as you escape your double-quotes like this (/").
"
]}
]}
(4) 创建自定义元件
这十分简单。
首先,定义记录如下:
-record(myelement, {?ELEMENT_BASE, attr1, attr2}).
然后,创建名为element_myelement的支持模块。你的模块应该导出函数render(ControlID, Record),由其返回编译后的HTML正文。
render(ControlID, Record)
ControlID – 元件在HTML正文中的id。
Record – 类型为myelement的记录,其中的参数用以创建自定义控件。
相关文章推荐
- Nitrogen 学习过程实录(1)
- Nitrogen 学习过程实录(6)
- Nitrogen 学习过程实录(11)
- Nitrogen 学习过程实录(2)
- Nitrogen 学习过程实录(13)
- Nitrogen 学习过程实录(5)
- Nitrogen 学习过程实录(3)
- Nitrogen 学习过程实录(8)
- Nitrogen 学习过程实录(4)
- Nitrogen 学习过程实录(10)
- Nitrogen 学习过程实录(7)
- Nitrogen 学习过程实录(9)
- 软件开发过程学习笔记(四)之详细设计说明书模板 分类: 开发过程 2015-07-08 14:46 12人阅读 评论(0) 收藏
- 深度学习框架caffe在macOS Heigh Sierra上安装过程实录
- 深度学习21天实战caffe学习笔记《12:Caffe 最优化求解过程》
- linux内核学习(12)启动全过程概述之三
- 【51单片机学习过程记录】12中断 之外部中断的应用2
- PCIe学习笔记(12)--- PCIe总线的枚举过程 ENUMERATION
- linux内核学习(12)启动全过程概述之三
- ceph学习笔记之六 数据读写过程