Aurelia - 仅绑定一次,在转发器中显示标题

Aurelia - bind only once showing the title in repeater

我有一个用户列表,每个用户都有一些角色。在 aurelia html 文件中,我想对用户进行分类。传入数据按角色按时间顺序排列所有用户。

所以基本上,如果用户有角色 1,显示部分标题 ROLE1 并列出这些用户,然后显示 ROLE2 并列出这些用户。

我试过用这个:

<p if.bind="user.role1">ROLE1</p>
<p if.bind="user.role2">ROLE2</p>

这是我的完整代码:

    <template repeat.for="user of users">

<p if.bind="user.role1">ROLE1</p>
                      <p if.bind="user.role2">ROLE2</p>
                                            <checkbox-input label="${user.name}" checked-value.two-way="user['selected']"></checkbox-input>
                                        </template>

问题是,标题 ROLE1 或 ROLE2 在转发器中显示在每个用户上方,但我只需要显示一次。我也尝试使用 if.bind.one-time 但那不起作用。

最后,我以不同的方式解决了这个问题——我使用了同一个中继器 2 次。我放在中继器上方和复选框内的标题我使用 if.bind="user.role1" 或 role2 作为第二个。这样就可以了,但是我想更容易地解决它,但最终还是可以的。

<p>ROLE1</p>
<template repeat.for="user of users">
                                            <checkbox-input if.bind="user.role1" label="${user.name}" checked-value.two-way="user['selected']"></checkbox-input>
                                        </template>

<p>ROLE2</p>
<template repeat.for="user of users">
                                            <checkbox-input if.bind="user.role2" label="${user.name}" checked-value.two-way="user['selected']"></checkbox-input>
                                        </template>