嵌入Sightly组件时是否可以直接传递参数?

时间:2015-10-07 21:35:54

标签: aem sightly

我有一个组件,它根据用户编辑的某些值包含一些条件逻辑。为了使它们在某些情况下更容易,我希望在将子组件嵌入另一个组件时设置其中一个或多个值。像这样的东西(虽然这个错误):

<sly data-sly-resource="${ @path='emailOptIn', resourceType='/apps/br/components/content/custom-forms/form-input' @type='checkbox'}"></sly>

这甚至可能吗?我是否必须通过data-sly-use和JS或Java处理它,即使我没有应用任何业务逻辑?创建一个单独的模板会不会更好,而不是在这个模板中加入过多的条件逻辑?

提前致谢!

2 个答案:

答案 0 :(得分:0)

我想最简单的方法就是通过一个Sightly模板,通过添加 BroadcastReceiver onNotificationClick = new BroadcastReceiver() { public void onReceive(Context ctxt, Intent intent) { } }; /apps/br/components/content/custom-forms/form-input的{​​{1}}组件来呈现data-sly-test组件现在所做的事情。参数。

type

您也可以通过Use-API处理此问题。 Use-API不仅适用于业务逻辑;它的目的是清楚地将逻辑与标记分开,无论这种逻辑是指处理某些业务对象,还是仅仅决定是否必须根据请求的上下文来呈现某些内容。

TL; DR:不,您不能将参数传递给包含的资源。

答案 1 :(得分:0)

我能做类似事情的唯一方法就是&#34; hack&#34; Sling选择器,它不推荐,但如果你根据参数调用组件的不同渲染器比Sling选择器可能是一个很好的解决方案.....但我仍觉得它有点hacky