增强语法属性

这部分是基于注释的渲染语法没有提供的功能。

主要是由于这部分功能的控制渲染 Leap 认为使用属性来完成更加方便和明确。

1. ht-class-append 属性

使用 ht-class-append 可以动态地为 HTML 元素附加 class 属性值。

注意是附加而不是替换,原有 class 属性的值会被保留。代码如下:

<li class="child" ht-class-append="${true ? 'x' : ''}">a</li>

以上代码渲染后是这样的:

<li class="child x">a</li>

2. ht-xxx-if 属性

这里的 xxx 代指任意名称的属性,该属性可视为原有的 xxx 属性的开关,如:

<div class="a" ht-class-if="i == 0"></div>

如果变量 i 的值为 0,则渲染结果为:

<div class="a"></div>

如果不为 0,则为:

<div></div>

一些 HTML 元素里会存在表示布尔值的属性,如 <input>disabled 属性。

这些属性的名字只要出现,就表示布尔真值,它的属性值基本无关紧要。

使用 ht-xxx-if 可以方便地处理这些属性,例如:

<option ht-selected-if="true">1</option>`

将渲染为:

<option selected="selected">1</option>

注意这里 selected 的属性值与属性名一样,这是因为 HTPL 默认会对所有表示布尔值的元素属性进行标准化,将空的属性值替换为属性名,例如:

<input disabled=""/>
<input disable>

都会被渲染为:

<input disabled="disabled">

但是非空值的属性例如

<input disabled="foo">

则不会被处理。

目前会被 HTPL 处理的布尔属性包括: compactcheckeddeclarereadonlydisabledselecteddeferismapnohrefnoshadenowrapmultiplenoresize

以上属性除了使用 ht-xxx-if 来控制布尔属性,也可以直接用表达式控制,例如

<input disabled="${true}">

3. ht-inline-el 属性

ht-inline-el 属性用于控制 HTPL 不解析元素内部的内容,例如:

<div ht-inline-el=false>${v}</div>

将渲染为:

<div>${v}</div>
上一篇:等效语法属性 下一篇:资源文件指纹

results matching ""

    No results matching ""