Q&A – Build Apps Faster with Lightning and Winter ’17

Thank you to everyone that attended our latest webinar, Build Apps Faster with Lightning and Winter ’17. We covered a lot of material, including:

  • Accessing data more easily and efficiently with the new Lightning Data Service
  • Building Lightning Components faster with new Lightning Base Components
  • Developing more interactive experiences with new Lightning Quick Actions

We had more questions than we had time to answer during the webinar, so we’ve published the top questions from our Q&A in this blog post. If you weren’t able to join us yesterday, like all of our webinars, you can watch it here. You can see the full list of Q&A here. If you have any additional questions, please don’t hesitate to ask them in the Lightning Developer Forums.

Q&A

Is there a Trailhead module available on Lightning Components?

Yes, there are several Trailhead projects, modules and trails available for Lightning Components. You can see a few examples below, and a comprehensive list here.

We will be building new modules/projects for the new Base Lightning Components and Data Service.

Do BASE Lightning components support data binding the same way the <ui:input…> components do?

Yes, Base Lightning Components have similar data-bindings, for example, title=”{!v.myCustomValue}” where myCustomValue is an aura:attribute.

Can you customize validation messages?

Yes, for example:

<lightning:input name="firstname" label="First Name" minlength="5" messageWhenBadInput="Your entry must be at least 5 characters." />

If Base Lightning Components are building blocks, can they be extended/customized?

Initially our intent is not to allow these components to be extended. Customization of appearance can be done through CSS, although you should try to stick with Lightning Design System classes and utility classes, if possible.

Can you DEPLOY a Lightning application IN THE SALESFORCE CLASSIC UI?

You can technically build a Lightning application without Lightning Experience enabled, however, in order to use it in the Salesforce Classic interface, it still requires a Visualforce wrapper. In fact, if you’re running Salesforce Classic, we still recommend building new functionality as Lightning Components wrapped in Visualforce.

Is it possible for Lightning Components and VISUALFORCE Pages to Coexist in the same Org?

Yes, definitely. The Dreamhouse Sample App is a great example of an application that uses both Lightning components and Visualforce pages.

In Lightning Data Service, can you dynamically switch between view and edit modes on a forM?

You can set the mode programmatically, but changing the setting by itself won’t trigger any changes. If you’re switching between VIEW and EDIT mode, you’d want to reload the record after you change the mode. (That’s true for changing other things too, like layout or fields.) If my component has a force:record with aura:id=”recordCmp”, then setting mode to EDIT from the controller would look like:

doTheThing: function(cmp, event, helper) {
    cmp.find("recordCmp").set("v.mode","EDIT");
    cmp.find("recordCmp").reloadRecord();
}

CAN YOU QUERY FIELDS ON RELATED RECORDS WITH THE LIGHTNING Data Service?

The Lightning Data Service currently operates on one record at a time, which you retrieve or modify using the record ID. There’s currently no support for relationship traversal.

Is there sample code for Lightning Data Service?

The new version of Dreamhouse Sample App uses the Lightning Data Service in a number of components: PropertyMap, MortgageCalculator, PropertyStatus, etc. Visit developer.salesforce.com/dreamhouse to download the app, get source code, and more.

Can we use Lightning Data Service in a managed package in Winter ’17?

During the Developer Preview, you can only use Lightning Data Service in a Developer Edition org. This means that you can’t package or deploy code that uses Lightning Data Service at this time.

In Your DEmo of the Lightning Data Service, you never retrieved the record or the Record ID. Did you skip a step?

If a component implements the force:hasRecordId interface, the recordId is automatically passed to the component. The only requirement is to declare an attribute named recordId.

The full list of answered questions can be found here. If you’d like to revisit the webinar, you can watch it here, and if you have any additional questions, please join us in the Lightning Developer Forums.

Published
October 27, 2016

Leave your comments...

Q&A – Build Apps Faster with Lightning and Winter ’17