I have an URL that was saved in a Text(255) field of the Custom Metadata Type. I wanted to refer this Url on to the Lightning component, to make my custom onClick() to redirect to this Url. How can I pass this URL to window.location.href?

Do I need to query the field in an Apex Controller class using:

Select Id, UrlField from MyPortal_Configuration_Setting__mdt

If yes, how can implement in Component's JS controller? If no, what is the valid workaround for referring URL from Custom Metadata type? Can someone take a look at this please?


To redirect to an url, if you're in Lightning Experience you should make use of the force:navigateToURL event.

To get the Custom Metadata Type, I'm afraid you'll have to query the server via an Apex Controller, yes. I tried to use Lightning Data Service, but unfortunately it doesn't work with Custom Metadata. But I would definitely keep an eye on it as it would make sense to support Custom Metadata Types in LDS in the future.

  • I was able to query this way: @AuraEnabled public static My_Portal_Configuration_Setting__mdt getLogoutUrl() { List<My_Portal_Configuration_Setting__mdt> logoutUrl = [Select Id, Logout_URL__c from My_Portal_Configuration_Setting__mdt LIMIT 1]; return logoutUrl[0]; }. On JS I tried to implement this: But received undefined: var logUrl = component.get("c.getLogoutUrl"); console.log('Url: ' +logUrl); Could you please help me out in implementing in JS? – Arnold Jr. May 18 '17 at 12:20
  • Have you tried returning just a String ? – Fabien Taillon May 18 '17 at 12:23
  • Actually I was getting this in console Url: [object Object]. – Arnold Jr. May 18 '17 at 12:27
  • Can you use console.log('Url: ', logUrl); ? "," instead of "+", and see what's inside the object. – Fabien Taillon May 18 '17 at 12:31
  • 1
    Let us continue this discussion in chat. – Fabien Taillon May 18 '17 at 13:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.