将 ViewBag 变量传递给组件
Passing ViewBag Variable to Component
自定义图库组件 (Pollozen SimpleGallery) 的标记时,手动传递 slug 效果很好。 (图库组件在布局中使用)。
[Gallery]
idGallery = 0
markup = "user"
slug = "test"
尝试分配由静态页面 (Rainlab Pages) 设置的变量时没有任何反应
[Gallery]
idGallery = 0
markup = "user"
slug = {{page.galleryId}}
{{page.galleryId}}
在实际布局中显示为 "test"。我应该如何将 viewBag 变量分配给组件才能使其正常工作?
为了pass the variable to the component,您必须在使用该组件的树枝部分执行此操作。这是一个例子:
[Gallery]
idGallery = 0
markup = "user"
==
{% component 'Gallery' slug=viewBag.slug %}
我刚刚用我的一个测试组件对此进行了测试,它按预期工作。
我最终不得不创建一个部分来嵌套组件。不知道为什么直接传递变量不起作用,但我怀疑静态页面变量是在组件初始化后计算的。
description = "Gallery (nested for static pages compatibility)"
[viewBag]
[Gallery]
idGallery = 0
markup = "user"
slug = "{{ id }}"
==
{% for image in gallery.images %}
...
{% endfor %}
布局内部:
{% partial 'gallery' id=page.galleryId %}
自定义图库组件 (Pollozen SimpleGallery) 的标记时,手动传递 slug 效果很好。 (图库组件在布局中使用)。
[Gallery]
idGallery = 0
markup = "user"
slug = "test"
尝试分配由静态页面 (Rainlab Pages) 设置的变量时没有任何反应
[Gallery]
idGallery = 0
markup = "user"
slug = {{page.galleryId}}
{{page.galleryId}}
在实际布局中显示为 "test"。我应该如何将 viewBag 变量分配给组件才能使其正常工作?
为了pass the variable to the component,您必须在使用该组件的树枝部分执行此操作。这是一个例子:
[Gallery]
idGallery = 0
markup = "user"
==
{% component 'Gallery' slug=viewBag.slug %}
我刚刚用我的一个测试组件对此进行了测试,它按预期工作。
我最终不得不创建一个部分来嵌套组件。不知道为什么直接传递变量不起作用,但我怀疑静态页面变量是在组件初始化后计算的。
description = "Gallery (nested for static pages compatibility)"
[viewBag]
[Gallery]
idGallery = 0
markup = "user"
slug = "{{ id }}"
==
{% for image in gallery.images %}
...
{% endfor %}
布局内部:
{% partial 'gallery' id=page.galleryId %}