Expand my Community achievements bar.

SOLVED

How to read inheritedPageProperties in sling models?

Avatar

Level 3

I would like to show the boolean values in my showIcon property based on the text in my title property. 

 

I added below code in my local to read inherited page properties but it didn't work. 

textModel.showIcon is showing false even though when I author "some text" words in extitle dialog

My HTL code:

 

<div class="test">
<svg aria-hidden="true" class="test-icon -test-team"
data-sly-test="${inheritedPageProperties.Icon || textModel.showIcon}">
</svg>
<span class="test-copy-text">
${inheritedPageProperties.extitle}
</span>
</div>

 My sling model code:

 

 

 

private InheritanceValueMap pageProperties;

@ScriptVariable
private Page currenPage;

public boolean isShowIcon() {
return showIcon;
}

@PostConstruct
protected void init() {
InheritanceValueMap ivm = new HierarchyNodeInheritanceValueMap(currenPage.getContentResource());
String inheritedValueCustomProperty = ivm.getInherited("extitle", String.class);

if(inheritedValueCustomProperty !=null){
if(inheritedValueCustomProperty.contains("some text"))
showIcon = true;
}
}

 

 

 

 

Or 

Sling model 

 

public boolean isShowIcon() {
return showIcon;
}

private boolean showIcon;

if(pageProperties !=null){
String copyrightText1 = pageProperties.get( "extitle", "" );
if(copyrightText1.contains("some text"))
showIcon = true;
}

 

1 Accepted Solution

Avatar

Correct answer by
Level 5
2 Replies

Avatar

Correct answer by
Level 5

Avatar

Community Advisor

@ramaem12,

your code looks alright, no problems here. Can you share with us your page structure?