London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

John-Philip Johansson
Jan 29, 2019
  6968
(6 votes)

One OPE attribute to rule them all: data-epi-edit (CMS UI 11.16.0)

In CMS UI 11.16.0, we're making it easier for everyone doing client-side rendered websites to mark up their HTML.

Before 11.16.0

In a previous post, I explained how to make an element editable in On-Page Edit when rendered by a client-side framework (e.g. React, Angular, Vue, etc). It was necessary to add three attributes:

<span data-epi-property-name="YourProperty" data-epi-property-render="none" data-epi-property-edittype="floating">{your JS framework decides how the value is actually rendered}</span>

This is slightly verbose. Although you could wrap it in some helper method in your JavaScript framework of choice (like we did in the MusicFestival sample site), it would require less "magic" or less reading of our documentation if there was only one attribute for frontend developers to remember. That's why we're introducing data-epi-edit. It does not have any specific behavior to learn about. It's equivalent to setting the properties above, and setting any of those properties as well will simply be ignored.

With 11.16.0

It's now enough with one simple attribute:

<span data-epi-edit="YourProperty">{your JS framework decides how the value is actually rendered}</span>

One note

We recommend that you don't render any data-epi-* attributes in View mode, as to not give too many details about the internal workings of your site. That's what @Html.PropertyFor() and @Html.EditAttributes() do when using Razor views. When taking over the rendering on the client-side, this responsibility moves over as well. One way is to use the global epi.beta.isEditable property (CMS UI 11.11.0, see blog or documentation) to toggle the rendering off and on, as we've done in MusicFestival (see here and here).

Learn more

Documentation: https://world.episerver.com/documentation/developer-guides/CMS/editing/on-page-editing-with-client-side-rendering/

MusicFestival has been updated to use this in the Vue directive v-epi-edit: https://github.com/episerver/musicfestival-vue-template/blob/129be15ae4a/src/MusicFestival.Vue.Template/Assets/Scripts/directives/epiEdit.js

Jan 29, 2019

Comments

Valina Eckley
Valina Eckley Jan 29, 2019 07:59 PM

Nice!  Great work JP!

Jake Jones
Jake Jones Mar 6, 2019 04:16 PM

Finally had a chance to check this out and it worked flawlessly. Nice job!

Please login to comment.
Latest blogs
Natural Language Q&A in Optimizely CMS Using Azure OpenAI and AI Search

In Part 2, we integrated Azure AI Search with Azure Personalizer to build a smarter, user-focused experience in Optimizely CMS. We used ServiceAPI ...

Naveed Ul-Haq | Apr 25, 2025 |

Identifying Spike Requests and Issues in Application Insights

Sometimes within the DXP we see specific Azure App Instances having request spikes causing performance degredation and we need to investigate. I fi...

Scott Reed | Apr 25, 2025

Optimizely Frontend Hosting Beta – Early Thoughts and Key Questions

Optimizely has opened the waitlist for its new Frontend Hosting capability. I’m part of the beta programme, but my invite isn’t due until May, whil...

Minesh Shah (Netcel) | Apr 23, 2025

Developer Meetup - London, 21st May 2025

The London Dev Meetup has been rescheduled for Wednesday, 21st May and will be Candyspace 's first Optimizely Developer Meetup, and the first one...

Gavin_M | Apr 22, 2025