使用消息模板助手 - Amazon Pinpoint

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用消息模板助手

借助 Amazon Pinpoint 模板,客户可以基于 Handlebars.js 语言创建可重复使用的消息模板。助手提供各种功能,例如,将价格格式化为特定地区的货币,或者添加基于时区的地点,等等。助手可以使用特定的字符串或整数作为值,也可以使用特定的 Amazon Pinpoint 消息变量。

以下部分介绍助手的类别:

本部分介绍 Handlebars 提供的内置助手。有关完整列表,请参阅 h an dlebarsjs.com 上的内置助手。有以下内置助手:

  • 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... if Alejandro 是的值[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.CityLos Angeles。 请注意,示例输出中显示的引号仅用于强调重点。

cut

从字符串中删除指定值。

用法

{{cut value [" "]}},将引号参数中的空格替换为要剪切的值。如果未传递任何参数值,则使用空格。

示例

这个例子删除了字母 e 来自Location.City属性。

{{cut Location.City "e"}} 返回

Los Angls 如果[Location.CityLos 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

示例

在此示例中,User.UserAttributes.StartDate.[0]is 的[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.CityLos Angeles。 请注意,示例输出中显示的引号仅用于强调重点。

lower

将一个值全部转换为小写。

用法

{{lower value}}

示例

在此示例中,的[0]条目更改User.UserAttributes.LastName.[0]为小写。

{{lower User.UserAttributes.LastName.[0]}} 返回

santos if Santos 是的值[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.CityLos Angeles。 请注意,输出中显示的引号仅用于强调重点。

slugify

将传递的值转换为小写,删除非单词字符(字母数字和下划线),将空格转换为连字符,并删除所有前导或尾随空格。

用法

{{slugify value}}

示例

在此示例中,对 Location.City 属性执行 slugify。

{{slugify Location.City}} 返回

los-angeles 如果Location.CityLos Angeles.

stripTags

从值中删除 [X] 个HTML标签。

用法

{{stripTags value}}

示例

在本示例中,是用户的HTML标签。 UserAttributes.interest. [0] 已删除。

{{stripTags User.UserAttributes.interests.[0]}} 返回

Art,如果User.UserAttributes.interests.[0]<h1>Art</h1>

substring

返回一个新字符串作为传递值的子字符串。长度和位置由 startOffsetendOffset 参数决定,这两个参数必须为整数。不支持负数。如果未传递 endOffset,则子字符串使用字符串的原始结尾值。

用法

{{substring value startOffset [endOffset]}}

示例

在此示例中,对 Location.City 属性应用了 4 和 endOffset 9 的偏移量。

{{substring Location.City 4 9}} 返回

Angel如果洛杉矶是的价值Location.CityLos Angeles.

upper

将传递的值转换为大写。

用法

{{upper value}}

示例

在此示例中,User.UserAttributes.LastName 属性的 [0] 条目全部转换为大写字母。

{{upper User.UserAttributes.LastName.[0]}} 返回

ROE 如果User.UserAttributes.LastName.[0]值是 Roe.

yesno

truefalseNULL 替换为 YesNoMaybe

用法

{{yesno value [yes="yes"] [no="no"] maybe=["maybe"]}}

示例

在此示例中,IsUserSubscribed 属性返回用户是否订阅了特定列表。

{{yesno Attributes.IsUserSubscribed}} 返回

yes 如果Attributes.IsUserSubscribedtrue.

本部分介绍数学和编码助手。

  • 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 lebarsjs.com 上的内联分区。

用法

{{#* 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,然后 capitalizeFirstjane 转换为 Jane