Update Component Depending on WCMMode in Angular | Community
Skip to main content
evancooperman-s
Level 2
March 20, 2020
Solved

Update Component Depending on WCMMode in Angular

  • March 20, 2020
  • 2 replies
  • 1770 views

For various components we use, we have different output depending on whether the author is in edit mode or preview mode (or wcmmode is disabled altogether).  Is there an easy way to hook into this, such that we can leverage it when outputting content in an Angular template...and such that when it changes, we re-render the component?

 

I used the latest SPA archetype to generate my Angular project.

 

Thanks in advance!

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by BrianKasingli

@evancooperman-s 

You can pass a property to your AngularJS component named "mode". The "mode" property can be set with either your Sling Models or pass the value directly with Sightly.

 

Sling Model: @SlingObject private SlingHttpServletRequest request; WCMMode.fromRequest(request); Sightly: data-sly-test="${wcmmode.edit}" data-sly-test="${wcmmode.preview}" data-sly-test="${wcmmode.disabled}" data-sly-test="${wcmmode.design}"

 

I hope this helps. 

2 replies

BaluM
Level 2
March 21, 2020

Hi,

AEM will create a cookie with name "wcmmode = (edit/preview)" if your page is opened in edit mode.

 

// Fetch cookie value and compare 
if (cookieValue === 'edit') {

//customcode
} else{

//customecode

}

 

Cookie in edit mode:

 

Cokkie in preview mode:

 

 

BrianKasingli
Community Advisor and Adobe Champion
BrianKasingliCommunity Advisor and Adobe ChampionAccepted solution
Community Advisor and Adobe Champion
March 22, 2020

@evancooperman-s 

You can pass a property to your AngularJS component named "mode". The "mode" property can be set with either your Sling Models or pass the value directly with Sightly.

 

Sling Model: @SlingObject private SlingHttpServletRequest request; WCMMode.fromRequest(request); Sightly: data-sly-test="${wcmmode.edit}" data-sly-test="${wcmmode.preview}" data-sly-test="${wcmmode.disabled}" data-sly-test="${wcmmode.design}"

 

I hope this helps.