Question
Answer and Explanation
To add a red asterisk to a label in SAP UI5, you typically need to use a combination of the sap.m.Label
control and some custom HTML or CSS. Here's how you can achieve this:
1. Using HTML within the Label's Text:
- You can embed HTML directly into the label's text property. This allows you to add a styled asterisk using a <span>
tag.
- Example:
<Label text="Name <span style='color:red;'></span>" design="Bold" />
- In this example, the asterisk is wrapped in a <span>
tag with inline CSS to make it red. The design="Bold"
attribute makes the label text bold.
2. Using a Custom CSS Class:
- You can define a CSS class for the red asterisk and apply it to a <span>
tag within the label.
- First, define the CSS class in your CSS file or within a <style>
tag:
.required-asterisk {
color: red;
}
- Then, use it in your label:
<Label text="Email <span class='required-asterisk'></span>" design="Bold" />
- This approach is cleaner and more maintainable, especially if you need to use the red asterisk in multiple places.
3. Using a Custom Formatter Function (for Dynamic Labels):
- If your label text is dynamic, you can use a formatter function to add the asterisk conditionally.
- Example:
// In your controller:
formatLabel: function(labelText, isRequired) {
if (isRequired) {
return labelText + " <span class='required-asterisk'></span>";
} else {
return labelText;
}
},
- In your view:
<Label text="{ path: 'yourModel>/label', formatter: '.formatLabel', parts: ['yourModel>/label', 'yourModel>/isRequired'] }" design="Bold" />
- This approach allows you to control the asterisk's visibility based on your model data.
4. Important Considerations:
- Ensure that the HTML content is properly escaped if it comes from user input to prevent XSS vulnerabilities.
- For accessibility, consider adding an aria-label
or aria-required
attribute to the label to indicate that the field is required.
By using these methods, you can effectively add a red asterisk to your SAP UI5 labels, indicating required fields to the user.