Expand my Community achievements bar.

July 31st AEM Gems Webinar: Elevate your AEM development to master the integration of private GitHub repositories within AEM Cloud Manager.

Cannot get DefaultSlingScript: data-sly-use needs to be passed an identifier

Avatar

Level 7

Hi

When I add to my template

<sly data-sly-use.storeLink="${'android' == model.device ? model.appleStoreLink : model.googlePlayLink}"></sly>

I get the following error

Cannot get DefaultSlingScript: org.apache.sling.api.SlingException: Cannot get DefaultSlingScript: data-sly-use needs to be passed an identifier

My model isDevice looks like:

public String isDevice() {
String userAgent = request.getHeader("user-agent");

if (userAgent.contains("iPhone")) {
return "ios";
} else if(userAgent.contains("Android")){
return "android";
} else {
return StringUtils.EMPTY;
}
}

Any suggestions what I am doing wrong?

  

3 Replies

Avatar

Level 7

Hi,

Will this always evaluate:

 

<sly data-sly-test.storeLink="${'android' == model.device ? model.appleStoreLink : model.googlePlayLink}"></sly>

Why does the  

data-sly-use

 throw an error?