4.3. 多服务注册
4.3.1. 检索有关服务的信息 复制链接链接已复制到粘贴板!
要检索有关需要构建正确注册链接的服务的所有信息,您必须通过服务对象进行循环。服务是模型对象的一部分。
{% for service in provider.services %}
.
.
.
{% endfor %}
{% for service in provider.services %}
.
.
.
{% endfor %}
4.3.2. 配置注册列 复制链接链接已复制到粘贴板!
您已有布局和循环访问服务对象。现在,决定您要如何显示服务以及注册链接的信息。例如,通过服务描述和底部的注册链接将它们划分为列。每列将作为一门服务列框,其中包含所有必要的信息。
内部容器充当自定义 description 字段。service.name 是服务名称,在本例中是容器的名称。
4.3.3. 配置订阅 复制链接链接已复制到粘贴板!
现在,自定义服务注册的主要部分 - 创建注册链接,提取注册 URL 和服务 ID。从 URL 的对象和服务 ID 中获取您迭代循环的服务对象的注册 URL。最终的链接代码类似如下:
<a href="{{ urls.signup }}?{{ service | toparam }}">Signup to {{ service.name }}</a>
<a href="{{ urls.signup }}?{{ service | toparam }}">Signup to {{ service.name }}</a>
您还必须考虑该用户可能已对某些服务进行了签名。创建要检查的条件块。
{% unless service.subscribed? %}
<a href="{{ urls.signup }}?{{ service | toparam }}">Signup to {{ service.name }}</a>
{% endunless %}
{% unless service.subscribed? %}
<a href="{{ urls.signup }}?{{ service | toparam }}">Signup to {{ service.name }}</a>
{% endunless %}
因此,您可以生成最终代码:
4.3.4. styling 复制链接链接已复制到粘贴板!
根据您拥有的服务数量,向生成的标记添加一些最终的接触。在这个示例中,它有两个,因此 service-column div 的 CSS 代码将是:
在示例中,我们使用了基于百分比的布局动态地分配包含维度的尺寸上列的宽度。
现在,您应该有一个正常工作且良好地忽略多个服务子版本。祝贺您!
如果您希望以特定顺序显示列,请尝试使用条件表达式(if/else/case)条件服务名称或其他值。