Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.

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?