我有一个组件,它根据用户编辑的某些值包含一些条件逻辑。为了使它们在某些情况下更容易,我希望在将子组件嵌入另一个组件时设置其中一个或多个值。像这样的东西(虽然这个错误):
<sly data-sly-resource="${ @path='emailOptIn', resourceType='/apps/br/components/content/custom-forms/form-input' @type='checkbox'}"></sly>
这甚至可能吗?我是否必须通过data-sly-use
和JS或Java处理它,即使我没有应用任何业务逻辑?创建一个单独的模板会不会更好,而不是在这个模板中加入过多的条件逻辑?
提前致谢!
答案 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