Value Providers

Value providers are a way to access data. Value providers encapsulate related values together, similar to how an object encapsulates properties and methods.

The value providers for a component are v (view) and c (controller).

Value Provider Description See Also
v A component’s attribute set. This value provider enables you to access the value of a component’s attribute in the component’s markup. Component Attributes
c A component’s controller, which enables you to wire up event handlers and actions for the component Handling Events with Client-Side Controllers

All components have a v value provider, but aren't required to have a controller. Both value providers are created automatically when defined for a component.

Expressions are bound to the specific component that contains them. That component is also known as the attribute value provider, and is used to resolve any expressions that are passed to attributes of its contained components.

Note

Global Value Providers

Global value providers are global values and methods that a component can use in expressions.

Global Value Provider Description See Also
globalID The globalId global value provider returns the global ID for a component. Every component has a unique globalId, which is the generated runtime-unique ID of the component instance. Component IDs
$Browser The $Browser global value provider returns information about the hardware and operating system of the browser accessing the application. $Browser
$ContentAsset The $ContentAsset global value provider lets you reference images, style sheets, and JavaScript used as asset files in your lightning components. $ContentAsset
$Label The $Label global value provider enables you to access labels stored outside your code. Using Custom Labels
$Locale The $Locale global value provider returns information about the current user’s preferred locale. $Locale
$Resource The $Resource global value provider lets you reference images, style sheets, and JavaScript code you’ve uploaded in static resources. $Resource

Accessing Fields and Related Objects

Values in a value provider are accessed as named properties. To use a value, separate the value provider and the property name with a dot (period). For example, v.body. You can access value providers in markup or in JavaScript code.

When an attribute of a component is an object or other structured data (not a primitive value), access the values on that attribute using the same dot notation.

For example, {!v.accounts.id} accesses the id field in the accounts record.

For deeply nested objects and attributes, continue adding dots to traverse the structure and access the nested values.