Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.

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

Avatar

Level 8

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 8

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?