Jade模板引擎(一)之Attributes

本文深入探讨了Jade模板引擎的特性,包括属性、布尔属性、样式属性、类属性及属性合并的用法,展示了如何在Jade中使用JS表达式、多属性换行、非转义属性、布尔值属性、样式和类属性,并提供了详细的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录:

Attributes

jade中的属性和html中的属性并没有什么太大区别, 值也和js的规则没有什么两样。

1. js表达式

    jade: 

- var authenticated = true
a(class=authenticated ? 'authed' : 'anon')

    html:

<a class="authed"></a>

2. 多属性换行

    jade:

input(
  type='checkbox'
  name='agreement'
  checked
)

    html:

<input type="checkbox" name="argeement" checked="checked" />

3. 非转义属性(Unescaped Attributes)

    默认情况下, 所有属性都是转义过的。这样做是为了安全起见,防止XSS攻击。如果需要使用特殊字符,可以使用"!="替代"="。

    jade:

div(escaped="<code>")
div(unescaped="<code>")

    html:

<div escaped="&lt;code&gt;"></div>
<div unescaped="<code>"></div>

Boolean Attributes

    在jade中, 属性值可以是bool值(true or false), 不设置值则默认是true。

    jade:

input(type='checkbox', checked)
input(type='checkbox', checked=true)
input(type='checkbox', checked=false)
input(type='checkbox', checked=true.toString())

    html:

<input type="checkbox" checked="checked" />
<input type="checkbox" checked="checked" />
<input type="checkbox" />
<input type="checkbox" checked="true" />

Style Attributes

    style属性可以是一个string也可以是一个object。比如json格式的对象形式。

    jade:

a(style={color: 'red', background:'green'})

    html:

<a style="color:red;background:green"></a>

Class Attributes

    class属性可以是一个string也可以是一个定义的class的数组对象。

    jade:

- var classes = ['foo', 'bar', 'baz']
a(class=classes)
a.bing(class=classes class=['bing'])

    html:

<a class="foo bar baz"></a>
<a class="bing foo bar baz bing"></a>

    同样可以通过使用条件的形式来实现。

    jade:

- var currentUrl = '/about'
a(class={active: currentUrl === '/'} href='/') Home
a(class={active: currentUrl === '/about'} href='/about') About

    html:

<a href="/">Home</a>
<a href="/about" class="active">About</a>

&Attributes

    &attributes可以将其两边的属性对象都加入到元素当中。

    jade:

- var attributes = {'data-foo': 'bar'}
div#foo(data-bar='foo')&attributes(attributes)

    html

<div id="foo" data-bar='foo' data-foo='bar'></div>

注: 在使用&attributes的情况下, 它并没有实现自动转义。所以需要通过一定的手段来确保你的页面不会出现XSS漏洞。

转载于:https://www.cnblogs.com/MonkeyKingK/p/5042578.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值