Expand my Community achievements bar.

Nomination window for the Adobe Community Advisor Program, Class of 2025, is now open!
SOLVED

Output HTML attribute name with HTL

Avatar

Level 3

If I want to output the attribute name via HTL, how do I go about doing this?

For example I want to be able to specify the meta tag as either <meta name=.. or <meta property=....

When I try this...

<meta ${metadata.metaTypeName}="${metadata.metaTypeNameValue}" content="${metadata.metaContentValue}" />

It renders in the HTML source as...

<meta ${metadata.metaTypeName}="metaTypeNameValue1" content="contentValue1"/>

The second two properties render fine, but the first one isn't getting evaluated.  Any thoughts?

1 Accepted Solution

Avatar

Correct answer by
Employee

You can pass in a Map to data-sly-attribute, that should do the trick.

To set multiple attributes, pass a map object hold key-value pairs corresponding to the attributes and their values. For example, assuming,

attrMap = {

    title: "myTitle",

    class: "myClass",

    id: "myId"

}

Then,

<div data-sly-attribute="${attrMap}"></div>

View solution in original post

5 Replies

Avatar

Level 10

Check the Spec to gain access to objects -- htl-spec/SPECIFICATION.md at master · Adobe-Marketing-Cloud/htl-spec · GitHub

Are you referencing a valid object.

Avatar

Level 3

Yes, I'm referencing a valid object.  It seems like it might have something to do with updating an attribute name, as the other attribute values are working fine.  Let me know if you have any other thoughts.

Avatar

Level 9

Hi Joshua,

data-sly-attribute at https://docs.adobe.com/docs/en/htl/docs/block-statements.html might help.

Thanks,

Avatar

Correct answer by
Employee

You can pass in a Map to data-sly-attribute, that should do the trick.

To set multiple attributes, pass a map object hold key-value pairs corresponding to the attributes and their values. For example, assuming,

attrMap = {

    title: "myTitle",

    class: "myClass",

    id: "myId"

}

Then,

<div data-sly-attribute="${attrMap}"></div>

Avatar

Level 3

That worked.  Thanks Feike!