在NView模板中,仅允许使用有限的标签(可以认为是HTML的子集),标签嵌套顺序及支持的属性,均有较为严格的限制。一个NView模板文件,固定结构如下:
<template>
<nviews cachemaxage="86400">
<!--nview控件-->
</nviews>
</template>
<script>
module.exports = {
//通过JS处理数据
};
</script>
template/nviews/script这些是表示特定结构的标签,并不生成UI元素;另外还有一些标签,如font/button等,则会生成相应的UI元素。
大多数标签都是可以通过属性设置的元素的样式,比如位置、边框等。我们讲大多数模板标签均具备的属性,称为标签通用属性,主要包括id/onclick/style三个属性,详细说明参考这里。本文在介绍模板标签时,除非该标签有特殊限制,否则不会介绍通用属性。
a标签在原生view上绘制一个超链接(底部带下划线的文本),目前标签仅支持在容器下使用。
属性
位于流式布局容器richtext标签下时,支持id、style属性,不支持onclick属性;style中可以定义font样式,详细参考模板样式;不支持align、background、position样式。
richtext容器下的a标签,还支持href属性,但点击不会触发页面跳转。若需处理a标签的跳转,则需监听richtext容器的onclick事件,通过点击回调中获取点击目标对象的href属性,然后通过JS API实现窗口跳转。
子标签
br标签用于插入一个简单的换行符,类似于HTML5中的br标签,目前仅可以在richtext容器下使用。
br标签不支持任何属性及子标签。
用于在原生View上绘制按钮,button标签内部仅支持放置文字,按钮文字上下、左右居中显示。 ### 属性 处于canvas和richtext容器下时,支持属性不同。 **canvas** button位于绝对布局容器canvas标签下时,支持id、onclick、style通用属性;style中可以定义background、border、font、position样式,详细参考[模板样式](http://ask.dcloud.net.cn/article/12790)。 **richtext** 暂不支持、即将支持。 ### 子标签 button标签下不支持嵌套子标签。 ## 表示绝对布局容器,默认和父容器nview具备相同的宽高,子节点全部为绝对定位,关于绝对布局参考[模板布局](http://ask.dcloud.net.cn/article/12784). ### 属性 canvas支持id、onclick、style通用属性,style属性中支持background、position样式定义,详细参考[模板样式](http://ask.dcloud.net.cn/article/12790) ### 子标签 canvas标签下允许使用a、button、font、img、input、hr标签; ## 用于在原生View上绘制文本, ### 属性 font处于canvas和richtext容器下时,支持属性不同。 **canvas** font位于绝对布局容器canvas标签下时,支持id、onclick、style通用属性;style中可以定义align、background、font、position样式,详细参考[模板样式](http://ask.dcloud.net.cn/article/12790) **richtext** font位于流式布局容器richtext标签下时,支持id、style属性,不支持onclick属性;style中可以定义align、font样式,详细参考[模板样式](http://ask.dcloud.net.cn/article/12790);不支持background、position样式。 ### 子标签 font标签下不支持嵌套子标签。 ##hr标签在原生view上创建一条水平分割线,从而可以将展示内容分割成各个部分。 ### 属性 hr标签支持id、style通用属性,不支持onclick属性; hr标签的style属性可以定义align(水平对齐)、border、position中的宽高(width/height),width支持绝对像素值和百分比,百分比是根据父容器宽度自动计算。 另外,hr处于canvas容器下时,还支持position中的left/top等坐标位置设置;处于richtext容器下是流式布局,不支持left/top等坐标设置。 ### 子标签 hr标签下不支持嵌套子标签。 ## imageslider是原生渲染的图片轮播组件,不允许嵌套子标签。imageslider支持id、style通用属性,style属性中可以设置background、position样式,具体参考[NView模板样式](http://ask.dcloud.net.cn/article/12790);另外,imageslider还支持images、loop、fullscreen属性,详细说明如下。 **images** 配置轮播组件的图片信息,具体信息包括: * src: 图片地址,支持本地地址(相对地址、绝对路径、RelativeURL、本地路径URL); 也支持网络地址(http://或https://); * align: 图片水平对齐方式,仅在图片显示的宽度与图片轮播控件宽度不一致时有效,可取值: "left" - 图片在轮播控件中水平居左对齐; "center" - 图片在轮播控件中水平居中对齐; "right" - 图片在轮播控件中水平居右对齐。 默认值为"center"。 * height: 图片显示的高度,可取值: 像素值,如"100px"; 百分比,如"10%",现对于图片轮播控件的高度; 自动计算"auto",如果指定图片宽度(width),则按图片实际大小等比缩放图片高度值,如果没有指定宽度(width值为"auto")则自动缩放图片至可完整显示。 * width: 图片显示的宽度,可取值: 像素值,如"100px"; 百分比,如"10%",相对于图片轮播控件的宽度; 自动计算"auto",如果指定图片高度(height),则按图片实际大小等比缩放图片宽度值,如果没有指定高度(height值为"auto")则自动缩放图片至可完整显示。 默认值为"auto"。 * verticalAlign: 图片垂直对齐方式,仅在图片显示的高度与图片轮播控件宽度不一致时有效,可取值: "top" - 图片在轮播控件中垂直居顶对齐; "middle" - 图片在轮播控件中垂直居中对齐; "bottom" - 图片在轮播控件中垂直居底对齐。 默认值为"middle"。 因为配置信息较为复杂,这里需要使用NView模板的[插值方式](http://ask.dcloud.net.cn/article/12759)赋值,如下是一个示例: ```html ``` 如上images属性值中,外层{}表示当前为JavaScript表达式,内部的[]表示当前为一个Array数组,数组中的每个元素是{}包裹的json对象; **loop** 设置轮播图片是否可循环播放,可取值: * true - 支持循环轮播; * false - 不支持循环轮播 默认值为false。 **fullscreen** 用户点击轮播图片时,是否全屏显示图片,可取值: * true - 全屏显示,用户点击轮播图片时全屏显示; * false - 不可全屏显示,用户点击轮播图片时无响应。 默认值为true。 ### 子标签 imageslider不支持嵌套子标签。 ##
2 个评论
要回复文章请先登录或注册
1***@qq.com
雪之梦技术驿站