【问题标题】:how to use two different sling models(parent sling model in child components html) in sightly?如何直观地使用两种不同的吊索模型(子组件html中的父吊索模型)?
【发布时间】:2017-02-20 04:22:35
【问题描述】:

我有父组件和子组件。我正在使用 data-sly-resource 在父组件(html)中包含子组件(基于类型的 3 种 html)。对于类型 3 子组件,我需要在 html 中呈现父组件的数据(我有父组件的吊索模型)。比较类型是从儿童吊索模型完成的。如何实现这个功能?

我的代码是

>  <sly data-sly-use.model="com.example.MyBlog.ChildModel" data-sly-unwrap>
>    .
>    .
>   .
>  <div data-sly-test="${model.itemType} == 'type3'">
> <div>  Here I need to access data from Parent Component(either sling model or   JCR)</div>

【问题讨论】:

  • 我的代码是 。 . .
    这里我需要从父组件(吊索模型或JCR)访问数据
  • 您能否提供更多关于您尝试使用模型解决的问题的信息?在我看来,您正在尝试解决应该通过设计/架构解决的代码问题。从孩子那里访问父模型对我来说闻起来像是糟糕的设计。如果您执意要做这样的事情,您可以将资源本身注入ChildModel 并使用JCR API 获取其父级,然后使用ModelFactory 实例化ParentModel 以访问ParentModel 的信息.

标签: aem jcr sightly sling-models


【解决方案1】:

在您的ChildModel 中,您可以添加如下字段:

@Self
@Via("parent")
private Resource patentResource;

这将向您的ChildModel 注入一个父资源实例。你甚至可以这样做:

@Self
@Via("parent")
private ParentModel patentModel;

这将自动将您的父资源调整为ParentModel。之后您可以在ChildModel 中公开一些父资源数据并在您的html 中使用它。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签