本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用消息模板助手
借助 Amazon Pinpoint 模板,客户可以基于 Handlebars.js 语言创建可重复使用的消息模板。助手提供各种功能,例如,将价格格式化为特定地区的货币,或者添加基于时区的地点,等等。助手可以使用特定的字符串或整数作为值,也可以使用特定的 Amazon Pinpoint 消息变量。
以下部分介绍助手的类别:
本部分介绍 Handlebars 提供的内置助手。有关完整列表,请参阅 h an
-
each
– 迭代列表。注意
最大列表大小为 15 个项目。
-
if
– 评估语句。
- each
-
迭代列表。此助手仅使用一个块语句。你可以选择:
-
在请求中传递
@index
以引用当前循环索引。 -
使用
this
助手引用被迭代的当前元素。 -
使用
<li>
标签以列表形式返回助手响应。
用法
{{#each
value
}}位置
{{@index}}
的值为{{this}}
。{{else}}
条件为假。
{{/each}}
each
的前面必须加上英镑符号 (#
),并且块语句以结束语句{{/each}}
结束。示例
在此示例中,
each
用于返回用户喜爱的颜色列表。对于false
,返回else
语句。如果请求是这样的:{{#each User.UserAttributes.FavoriteColors}}
<li>{{this}}</li>
{{else}}
You have no favorite colors.
{{/each}}
返回-
red
-
blue
-
yellow
对于真语句。
-
- if
-
评估某件事是否为真,并基于评估结果返回响应。
用法
{{#if
value
}}值不是未定义的
{{else}}
值未定义
{{/if}}
if
的前面必须加上英镑符号 (#
),并且块语句以结束语句{{/if}}
结束。示例
在此示例中,
if
助手用于评估是否有用户的名字。如果找到名字,则返回在响应中传递用户名字的问候语。否则,else
语句返回备选问候语。{{#if User.UserAttributes.FirstName.[0]}}
Hello
{{User.UserAttributes.FirstName.[0]}},
{{else}}
Hello,
{{/if}}
返回
Hello, Jane
如果if
助手是真的。
本部分介绍条件助手。
条件助手既可以在单行上使用,也可以在块语句中使用。无论您使用哪种助手方法,都可以自定义响应。您可以在单行语句和块语句中传递额外的条件助手。以下条件助手首先显示单行的用法,然后显示使用可选 else
子句的块语句的用法。有以下条件助手:
-
and
— 比较所有传递的元素是否相等。 -
eq
– 测试两个元素是否相等。 -
gt
– 测试一个元素是否大于另一个元素。 -
gte
– 测试一个元素是否大于或等于另一个元素。 -
if
— 评估某件事是否属实。 -
lt
– 测试一个元素是否小于另一个元素。 -
lte
– 测试一个元素是否小于或等于另一个元素。 -
neq
– 评估两个元素是否不相等。 -
not
— 反转布尔运算的响应。 -
or
– 比较自变量中的任何元素是否相等。
- 以及
-
比较参数中传递的所有 元素是否相等,然后根据结果返回响应。此助手可用于非布尔值。您必须为条件传递至少两个元素。
用法
-
{{and
valuea
valueb
valuec
valued
yes='y
' no='n
'}}你可以更换
y
以及n
使用其他值,例如yes
以及no
,或您想要返回的任何其他字符串,具体取决于条件。 -
{{#and
valuea
valueb
}}条件为真。
{{else}}
条件为假。
{{/and}}
and
的前面必须加上英镑符号 (#
),并且块语句以结束语句{{/and}}
结束。
示例
在此示例中,
eq
用在and
块语句中,以确定为Location.City
和Location.Country
属性传递的两个字符串是否为真。如果两个条件相等,则返回一个真语句。如果其中任何一个属性为假,则返回else
语句。{{#and (eq Location.City "Los Angeles") (eq Location.Country "US")}}
You live in Los Angeles and the US.
{{else}}
You don’t live in Los Angeles and the US.
{{/and}}
-
- eq
-
测试两个元素是否相等,或者一个元素的值是否等于传递的字符串。
用法
-
{{eq
valuea
valueb
yes='y
' no='n
'}}你可以更换
y
以及n
使用其他值,例如yes
以及no
,或您想要返回的任何其他字符串,具体取决于条件。 -
{{#eq
valuea
valueb
}}条件为真。
{{else}}
条件为假。
{{/eq}}
eq
的前面必须加上英镑符号 (#
),并且块语句以结束语句{{/eq}}
结束。
示例
在此示例中
eq
,用于评估的值是否User.UserAttributes.FavoriteColors.[0]
为Red
。 如果响应为true
,则返回一条真实的语句。如果响应为false
,则返回一个else
语句。{{#eq User.UserAttributes.FavoriteColors.[0] "
red
"}}Your favorite color is red.
{{else}}
You don't like red.
{{/eq}}
-
- gt
-
测试一个元素的值是否大于另一个元素的值。
用法
-
{{gt
valuea
valueb
yes='y
' no='n
'}}你可以更换
y
以及n
使用其他值,例如yes
以及no
,或您想要返回的任何其他字符串,具体取决于条件。 -
{{#gt
valuea
valueb
}}条件为真。
{{else}}
条件为假。
{{/gt}}
gt
的前面必须加上英镑符号 (#
),并且块语句以结束语句{{/gt}}
结束。
示例
在此示例中,帮助程序将
User.UserAttributes.UserAge.[0]
属性的值与字符串进行比较17
,以验证用户的年龄是否大于 17 岁。如果响应为true
,则返回一个真语句。如果响应为false
,则返回一个else
语句。{{#gt User.UserAttributes.UserAge.[0] "
17
"}}You are old enough to rent a car.
{{else}}
You are not old enough to rent a car.
{{/gt}}
-
- gte
-
测试一个元素的值是否大于或等于另一个元素。
Usage
-
{{gte
valuea
valueb
yes='y
' no='n
'}}你可以更换
y
以及n
使用其他值,例如yes
以及no
,或您想要返回的任何其他字符串,具体取决于条件。 -
{{#gte
valuea
valueb
}}条件为真。
{{else}}
条件为假。
{{/gte}}
get
的前面必须加上英镑符号 (#
),并且块语句以结束语句{{/gte}}
结束。
示例
在此示例中,帮助程序将
User.UserAttributes.UserAge.[0]
属性与字符串进行比较18
,以验证用户的年龄是否大于或等于 18 岁。如果响应为true
,则返回一个真语句。如果响应为false
,则返回一个else
语句。{{#gte User.UserAttributes.UserAge.[0] "
18
"}}You are old enough to rent a car.
{{else}}
You are not old enough to rent a car.
{{/gte}}
-
- if
-
评估某件事是否为真,并基于评估结果返回响应。
用法
-
{{#if
value
}}你可以更换
y
以及n
使用其他值,例如yes
以及no
,或您想要返回的任何其他字符串,具体取决于条件。 -
{{#if
}}value
条件为真。
{{else}}
条件为假。
{{/if}}
if
的前面必须加上英镑符号 (#
),并且块语句以结束语句{{/if}}
结束。
示例
在此示例中, 助手用于评估是否有用户的名字。如果找到名字,则返回在响应中传递用户名字的问候语。否则,else 语句返回备选问候语。
{{#if User.UserAttributes.FirstName.[0]}}
Hello
{{User.UserAttributes.FirstName.[0]}}
,
{{else}}
Hello,
{{/if}}
返回
Hello Jane,
如果助手是真的。 -
- lt
-
测试一个元素的值是否小于另一个元素的值。
用法
-
{{lt
valuea
valueb
yes='y
' no='n
'}}你可以更换
y
以及n
使用其他值,例如yes
以及no
,或您想要返回的任何其他字符串,具体取决于条件。 -
{{#lt
valuea
valueb
}}条件为真。
{{else}}
条件为假。
{{/lt}}
lt
的前面必须加上英镑符号 (#
),并且块语句以结束语句{{/lt}}
结束。
示例
在此示例中,帮助程序将
User.UserAttributes.UserAge.[0]
属性与字符串进行比较18
,以验证用户的年龄是否小于 18 岁。如果响应为true
,则返回一个真语句。如果响应为false
,则返回一个else
语句。{{#lt User.UserAttributes.UserAge.[0] "
18
"}}You are not old enough to rent a car.
{{else}}
You are old enough to rent a car.
{{/lt}}
-
- lte
-
测试一个元素的值是否小于或等于另一个元素的值。
用法
-
{{lte
valuea
valueb
yes='y
' no='n
'}}你可以更换
y
以及n
使用其他值,例如yes
以及no
,或您想要返回的任何其他字符串,具体取决于条件。 -
{{#lte
valuea
valueb
}}条件为真。
{{else}}
条件为假。
{{/lte}}
lte
的前面必须加上英镑符号 (#
),并且块语句以结束语句{{/lte}}
结束。
示例
在此块语句中,帮助程序将
User.UserAttributes.UserAge.[0]
属性与字符串进行比较17
,以验证用户的年龄是否等于 17 岁或以下。如果响应为true
,则返回一个真语句。如果响应为false
,则返回一个else
语句。{{#lte User.UserAttributes.Age.[0] "
17
"}}You are not old enough to rent a car.
{{else}}
You are old enough to rent a car.
{{/lte}}
-
- neq
-
测试两个元素是否不 相等。
用法
-
{{neq
valuea
valueb
yes='y
' no='n
'}}你可以更换
y
以及n
使用其他值,例如yes
以及no
,或您想要返回的任何其他字符串,具体取决于条件。 -
{{#neq
valuea
valueb
}}条件为真。
{{else}}
条件为假。
{{/neq}}
neq
的前面必须加上英镑符号 (#
),并且块语句以结束语句{{/neq}}
结束。
示例
在此块语句中,对照字符串检查该
User.UserAttributes.FavoriteColors.[0]
属性
。如果响应为Red
true
,则返回一个真语句。如果响应为false
,则返回一个else
语句。{{#neq User.UserAttributes.Favorite.Colors.[0] "
red
"}}You do not like red.
{{else}}
You like red.
{{/neq}}
-
- not
-
反转布尔运算的响应,这样,如果
not
是正向比较,则返回一个true
语句。如果响应为假,则返回一个 else 语句。用法
-
{{not
value
yes='y
' no='n
'}}你可以更换
y
以及n
使用其他值,例如yes
以及no
,或您想要返回的任何其他字符串,具体取决于条件。 -
{{#not
}}value
条件为真。
{{else}}
条件为假。
{{/not}}
not
的前面必须加上英镑符号 (#
),并且块语句以结束语句{{/not}}
结束。
示例
在此块语句中,对照字符串检查
User.UerAttributes.FavoriteColors.[0]
属性red
,使用助eq
手。然后,not
助手返回eq
助手的相反值。如果响应返回除之外的任何颜色red
,则true
会返回一条语句。如果回复返回red
,则返回一条指明错误else
陈述的语句。{{#not (eq User.UserAttributes.Favorite.Colors.[0] "
red
")}}You do not like red.
{{else}}
You like red.
{{/not}}
示例
在本示例中,
{{not (eq User.UserAttributes.FavoriteColors.[0] "
red
")}}如果是,
User.UserAttributes.FavoriteColors.[0]
则返回假red
. -
- or
-
比较参数中是否有任何 元素相等,然后根据结果返回响应。此助手可用于非布尔值。
用法
-
{{or
valuea
valueb
valuec
valued
yes='y
' no='n
'}}你可以更换
y
以及n
使用其他值,例如yes
以及no
,或您想要返回的任何其他字符串,具体取决于条件。您必须为条件传递至少两个元素。 -
{{#or
valuea
valueb
}}条件为真。
{{else}}
条件为假。
{{/or}}
or
的前面必须加上英镑符号 (#
),并且块语句以结束语句{{/or}}
结束。
示例
在此
or
块语句中,还使用eq
助手比较了Location.City
属性的两个字符串。如果其中任何一个属性为true
,则返回真语句。如果有一个或多个响应为false
,则返回一个else
语句。{{#or (eq Location.City "Los Angeles") (eq Location.City "Seattle")}}
You live on the West Coast of the United States.
{{else}}
You do not live on the West Coast of the United States.
{{/or}}
-
本部分介绍以下字符串助手:
-
abbreviate
– 截断一个值。 -
capitalize
– 将空格之间的每个单词都大写。 -
capitalizeFirst
– 将值的第一个字符大写。 -
center
– 将值居中。 -
cut
– 剪切一个值。 -
dateFormat
– 设置日期样式。 -
inflect
– 根据计数返回单数或复数字符串。 -
join
– 连接数组、迭代器或可迭代对象。 -
ljust
– 将值对齐到左边距。 -
lower
– 将值转换为小写。 -
now
– 显示当前日期。 -
ordinalize
– 对数字值进行排序。 -
replace
– 将一个字符串替换为另一个字符串。 -
rjust
– 将值对齐到右边距。 -
slugify
– 将值转换为小写并删除非单词字符,将空格转换为连字符,并删除尾随的空格。 -
stripTags
— 从值中删除 [X] 个HTML标签。 -
substring
– 返回一个新字符串作为传递值的子字符串。 -
upper
– 将传递的值转换为大写。
-
yesno
– 将 true、false 和 no 替换为 Yes、No 和 Maybe。
- abbreviate
-
如果值超过指定长度,则截断该值。长度计数中包含空格。响应中显示省略号以表示被截断的值。省略号计入响应中被截断的值。如果您的表格很大但空间很小,那么这种类型的助手非常有用。截断单元格中的值可以使表格的外观更加统一。
用法
{{abbreviate
,替换value
X
}}X
用一个数值表示要保留的字符数。不支持负数。示例
在此示例中,
abbreviate
用于将User.UserAttributes.LastName.[0]
截断为六 (6) 个字符。响应包括省略号,这些点计入六个字符的总数中。{{abbreviate
返回User.UserAttributes.LastName.[0]
6
}}Ale...
ifAlejandro
是的值[0]
。 - capitalize
-
将空格之间的每个单词都大写。
用法
{{capitalize
value
}}示例
在此示例中,将首字母大小应用于
Attributes.description.[0]
条目的每个单词。{{capitalize
Attributes.description.[0]
}}如果
Attributes.description.[0]
返回My First Post
,如果的值Attributes.description.[0]
为my first post
. - capitalizeFirst
-
将值中的第一个字符大写。
用法
{{capitalizeFirst
value
}}示例
在此示例中,将大写应用于
Attributes.description.[0]
条目的第一个单词的第一个字符。{{capitalizeFirst
返回Attributes.description.[0]
}}My first post
,如果的值
为Attributes.description.[0]
my first post
.示例
- center
-
在给定宽度(通过指定数值)的字段中将值居中。您可以选择传递字符来填充,也可以留空。如果未传递任何字符,则使用空格。
用法
{{center
,替换value
size=X
[pad=" "}}X
使用数值。如果保留
pad
为空白,则在响应中使用空格作为填充。如果您传递一个字符,则该字符将显示在填充的每个空格中。不支持负数。示例
在此示例中,的
Location.City
值居中,大小为19
.{{center
返回Location.City
size=19
}}" Los Angeles "
如果Location.City
是Los Angeles
。 请注意,示例输出中显示的引号仅用于强调重点。 - cut
-
从字符串中删除指定值。
用法
{{cut
,将引号参数中的空格替换为要剪切的值。如果未传递任何参数值,则使用空格。value
[" "
]}}示例
这个例子删除了字母
e
来自Location.City
属性。{{cut
返回Location.City
"e
"}}Los Angls
如果[Location.City
是Los Angeles
. - dateFormat
-
为任何响应中的日期设置默认日期样式。有关时区的列表IDs,请参阅https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
。 用法
{{dateFormat date [inputFormat="format1"] [outputFormat="format2"] [tz=timeZoneId] [locale=localeID]}}
format
参数必须为以下之一:-
“
full
”:完整日期格式。例如:Tuesday, September 19, 2020
-
“
long
”:长日期格式。例如:September 19, 2020
-
“
medium
”:中等日期格式。例如:Sept 19, 2020
-
“
short
”:短日期格式。例如:9/19/20
-
“
pattern
”:使用自定义日期模式格式。有关日期模式的更多信息,请访问 https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html。
“
locale
”:使用基于给定区域的日期格式。有关区域的更多信息,请访问 https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-。 如果未传递某种格式,则默认使用
medium
。示例
在此示例中,
is 的User.UserAttributes.StartDate.[0]
[0]
条目09/19/2020
和消息使用基于full
日期格式发送给用户America/Los_Angeles
时区。We can meet with you any time on
{{dateFormat User.UserAttributes.StartDate.[0] inputFormat="MM/dd/yyyy" outputFormat="full" tz=America/Los_Angeles}}.
返回We can meet with you any time on Tuesday, September 19, 2020.
-
- inflect
-
根据计数值返回单数或复数字符串。
用法
{{inflect
count
singular
plural
[includeCount=false]}}-
输入要在参数中传递的字符串的单数和复数形式。
-
如果
includeCount
设置为false
,则响应中不返回计数。如果设置为true
,则响应中包括count
。
示例
以下示例显示了在有和没有
includeCount
的情况下,针对购买苹果的表述变化。Thank you for your purchase of {{inflect
返回:3
apple
apples
includeCount=false
}}.Thank you for your purchase of apples.
如果
includeCount
设置为true
,则响应为Thank you for your purchase of 3 apples.
-
- join
-
连接数组、迭代器或可迭代对象。响应会返回一个列表,列表中的每个值都由您在
join
中传递的字符连接在一起。例如,您可能使用逗号 (,
) 分隔值。此助手中的值必须是没有属性位置索引的列表。例如,这可能是Attributes.custom_attribute
。用法
{{join
value
" // " [prefix=""] [suffix=""]}}示例
在此示例中,返回一个颜色列表,列表由逗号和空格 (
", "
) 分隔:{{join
返回Attributes.favorite_colors
",
"}}blue, red, green
如果Attributes.favorite_colors
是清单blue,red,green
. - ljust
-
将值对齐到左边距,并在右侧添加空格,使值的长度匹配数值。不支持负数。
您可以选择传递要为
pad
显示的字符,也可以留空。如果将pad
值留空,则默认值为空格。用法
{{ljust
,哪里value
size=X
[pad=" "]}}X
是该值的总长度,包括空格。示例
在此示例中,左对齐值为
15
应用于 Location.City。{{ljust
返回Location.City
size=15
}}"Los Angeles "
如果的值Location.City
为Los Angeles
。 请注意,示例输出中显示的引号仅用于强调重点。 - lower
-
将一个值全部转换为小写。
用法
{{lower
value
}}示例
在此示例中,的
[0]
条目更改User.UserAttributes.LastName.[0]
为小写。{{lower
返回User.UserAttributes.LastName.[0]
}}santos
ifSantos
是的值[0]
。 - now
-
根据传递的时区 ID 显示当前日期。有关时区的列表IDs,请参阅https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
。 用法
{{now ["format"] [tz=timeZoneId] [locale=localeID]}}
format
参数必须为以下之一:-
“
full
”:完整日期格式。例如:Tuesday, September 19, 2020
-
“
long
”:长日期格式。例如:September 19, 2020
-
“
medium
”:中等日期格式。例如:Sept 19, 2020 -
“
short
”:短日期格式。例如:9/19/20。 -
“
pattern
”:日期模式。有关日期模式的更多信息,请访问 https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html。
“
locale
”:使用基于给定区域的日期格式。有关区域的更多信息,请访问 https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-。 如果未传递某种格式,则默认使用
medium
。示例
在此示例中,Los Angeles 的当前日期以
medium
格式返回。{{now "medium" tz=
返回America/Los_Angeles
}}Sept 19, 2020
. -
- ordinalize
-
将参数中传递的数值序数词化。例如,
1
按顺序排列为1st
以及2
如同2nd
。 仅支持数值。用法
{{ordinalize [
number
]}}示例
在此示例中,对
User.UserAttributes.UserAge
的[0]
条目序数词化并返回,同时伴随一条消息。Congratulations on your {{ordinalize User.UserAttributes.UserAge.[0]}} birthday!
返回22
按顺序排列为22nd
.Congratulations on your 22nd birthday!
- replace
-
将一个字符串替换为另一个字符串。字符串或数值必须是文字。不支持通配符。
用法
{{replace
stringToReplace
replacementValue
}}示例
在此示例中,下划线 (_) 取代了空格。
{{replace
返回Location.City
" " "_"
}}Los_Angeles
如果Location.City
是Los Angeles
. - rjust
-
将值对齐到右边距,并在左侧添加空格,使值的长度匹配数值。不支持负数。
您可以选择传递要为
pad
显示的字符,也可以留空。如果将pad
值留空,则默认值为空格。用法
{{rjust
,哪里value
size=X
[pad=" "]}}X
是该值的总长度,包括空格。示例
在此示例中,正确的对齐值为
15
应用于该Location.City
属性。{{rjust
返回Location.City
size=15
}}" Los Angeles"
. 如果Location.City
是Los Angeles
。 请注意,输出中显示的引号仅用于强调重点。 - slugify
-
将传递的值转换为小写,删除非单词字符(字母数字和下划线),将空格转换为连字符,并删除所有前导或尾随空格。
用法
{{slugify
value
}}示例
在此示例中,对
Location.City
属性执行 slugify。{{slugify
返回Location.City
}}los-angeles
如果Location.City
是Los Angeles
. - stripTags
-
从值中删除 [X] 个HTML标签。
用法
{{stripTags
value
}}示例
在本示例中,是用户的HTML标签。 UserAttributes.interest. [0] 已删除。
{{stripTags
返回User.UserAttributes.interests.[0]
}}Art
,如果User.UserAttributes.interests.[0]
是<h1>Art</h1>
。 - substring
-
返回一个新字符串作为传递值的子字符串。长度和位置由
startOffset
和endOffset
参数决定,这两个参数必须为整数。不支持负数。如果未传递endOffset
,则子字符串使用字符串的原始结尾值。用法
{{substring
value
startOffset
[endOffset]
}}示例
在此示例中,对 Location.City 属性应用了 4 和 endOffset 9 的偏移量。
{{substring
返回Location.City 4 9
}}
如果洛杉矶是的价值Angel
Location.City
是Los Angeles
. - upper
-
将传递的值转换为大写。
用法
{{upper
value
}}示例
在此示例中,
User.UserAttributes.LastName
属性的[0]
条目全部转换为大写字母。{{upper User.UserAttributes.LastName.[0]}}
返回ROE
如果User.UserAttributes.LastName.[0]
值是Roe
. - yesno
-
将
true
、false
和NULL
替换为Yes
、No
和Maybe
。用法
{{yesno value [yes="yes"] [no="no"] maybe=["maybe"]}}
示例
在此示例中,
IsUserSubscribed
属性返回用户是否订阅了特定列表。{{yesno Attributes.IsUserSubscribed}}
返回yes
如果Attributes.IsUserSubscribed
是true
.
本部分介绍数学和编码助手。
-
add
– 返回两个数的和。 -
ceiling
– 将小数向上取到最近的整数。 -
decode64
— 将 base64 编码的值解码为字符串。 -
divide
– 返回两个数的商。 -
encode64
— 使用 base64 对字符串进行编码。 -
floor
– 将小数向下取到最近的整数。 -
md5
— 使用MD5算法对传递的字符串进行哈希处理。 -
modulo
— 使用浮点返回两个数字的余数。 -
multiply
– 返回两个数的乘积。 -
round
– 将小数舍入为最接近的整数。 -
sha256
— 使用 SHA -256 对传递的字符串进行哈希处理。 -
sha512
— 使用 SHA -512 对传递的字符串进行哈希处理。 -
subtract
– 返回两个数的差。 -
uuid
— 随机生UUID成 128 位格式的。
- add
-
返回两个浮点数的和。
用法
{{add
arg1
arg2
}}示例
{{add
返回5 2.3
}}7.3
- ceiling
-
将小数向上取到最接近传递值的最大整数。
用法
{{ceiling
value
}}示例
{{ceiling
返回5.23
}}6
- decode64
-
将 base64 编码的值解码为字符串。
用法
{{decode64 "
string
"}}示例
{{decode64 "
返回SGVsbG8gd29ybGQ
="}}Hello World
- divide
-
返回两个数的商,包括浮点。
用法
{{divide
arg1
arg2
}}示例
{{divide
返回5 2.3
}}2.17391304
- encode64
-
使用 base64 对参数中传递的字符串进行编码。
用法
{{encode64 "
string
"}}示例
{{encode64 "
Hello World"
}}SGVsbG8gd29ybGQ=
- floor
-
将小数向下取到最接近传递值的最小整数。
用法
{{floor
value
}}示例
{{floor
返回5.23
}}5
- md5
-
使用MD5算法对传递的字符串进行哈希处理。
用法
{{md5 "
string
"}}示例
{{md5 "
Hello World
"}}3e25960a79dbc69b674cd4ec67a72c62
- modulo
-
返回两个浮点数取模的余数。
用法
{{modulo
arg1
arg2
}}示例
{{modulo
返回7 2
}}1
- multiply
-
返回两个可带浮点的数的乘积。
用法
{{multiply
arg1
arg2
}}示例
{{multiply
返回5 2.3
}}11.5
- round
-
将小数位向上或向下舍入为最接近的整数。
用法
{{round
value
}}示例
You spent an average of {{round
返回:19.21
}} minutes on our website each day.You spent an average of 19 minutes on our website each day.
- sha256
-
使用 SHA -256 加密安全性对传递的字符串进行哈希处理。
用法
{{sha256 "
string
"}}示例
{{sha256 "
返回Hello World
"}}a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e
- sha512
-
使用 SHA -512 加密安全性对传递的字符串进行哈希处理。
用法
{{sha512 "
string
"}}示例
{{sha512 "
返回Hello World
"}}2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b
- subtract
-
返回两个可带浮点的数的差。
用法
{{subtract
arg1
arg2
}}示例
返回{{subtract
5 2.3
}}2.7
- uuid
-
随机生成UUID标准 128 位格式的。无需在参数中传递任何值。
用法
{{uuid}}
示例
返回{{uuid}}
95f36680-152c-4052-99ec-cc3cdf7ca594
虽然严格来说不是帮手,但行内部分是 Handlebars 简化包含重复字符串的模板的方法,这更适合重复使用。有关更多信息,请参阅 h and
用法
{{#* inline "inlineName"}}Content to reuse{{/inline}}
要在其他地方引用 inline partial 的内容,请使用:
{{> inlineName}}
示例
以下示例通过在模板的开头添加以下代码来创建包含收件人名字和姓氏(如果有)的内联部分:
{{#* inline "
fullName
"}}
{{User.UserAttributes.FirstName.[0]}} {{#if
User.UserAttributes.LastName.[0]}} {{User.UserAttributes.LastName.[0]}} {{/if}}
{{/inline}}
创建 fullName
partial 后,您可以通过在 partial 的名称前加上一个 >
(大于号),后面跟一个空格,将其包含在模板中的任何位置,如下例所示:{{>
fullName}}
。
你好 {{>fullName}}
如果为 true,则返回用户的名字和姓氏——例如,Hello
Jane Doe
。 否则,如果找不到姓氏,Hello
Jane
已返回。
除此处记录的功能外,车把还包括其他功能。有关更多信息,请访问 handlebarsjs.com
将变量与消息模板助手结合使用
Amazon Pinpoint 自定义属性(例如 User.UserAttributes.LastName
)以列表形式存储,无论列表有一个项目还是多个项目。在期望字符串的助手中传递列表时,必须指定属性索引值和属性名称。此属性索引值指示值在属性列表中的位置:.[0]
是列表中的第一项,.[1]
是第二项,.[2]
是第 3 项,以此类推。例如,假设您正在使用 upper
助手将 User.UserAttributes.LastName
的第一项 ([0]
) 转换为全部大写。助手用法为 {{upper
,属性的格式为 value
}}User.UserAttributes.LastName
。Replace(替换) value
其属性名称和属性索引值
如下所示:.[0]
{{upper
User.UserAttributes.LastName.[0]}}
。然后,响应会返回列表中的 [0]
项,格式全部为大写。例如,如果的值[0]
为 Santos
,则返回响应 SANTOS
.
Amazon Pinpoint 自定义属性名称支持空格。要调用自定义属性"Last Name"
,必须将该属性的格式设置为User.UserAttributes.[Last Name]
。要访问属性索引列表中的第一个条目,格式为User.UserAttributes.[Last
Name].[0]
。
自定义属性名称最多可包含 50 个字符。属性值最多可包含 100 个字符。在定义自定义属性的名称时,请避免使用以下字符:数字符号 (#)、冒号 (:)、问号 (?)、反斜杠(\)和斜杠(/)。Amazon Pinpoint 控制台无法显示包含这些字符的属性名称。此限制不适用于属性值。
使用嵌套助手
您可以将多个消息模板助手嵌套在一起。以下示例说明如何格式化两个助手:{{ first helper (second helper)}}
。首先处理第二个助手,然后处理第一个助手。请记住,第一个助手始终决定输出。后续的助手必须嵌套在前一个助手中,如下所示:{{ first helper (second helper (third helper)
)}}
。
以下示例显示了如何嵌套两个助手以将 JANE
改为 Jane
:{{capitalizeFirst
(lower "
。JANE
")}}lower
首先将 JANE
转换为 jane
,然后 capitalizeFirst
将 jane
转换为 Jane
。