ACA provides an extensive range of widgets designed with control interfaces in mind.
Links to the available components and documentation can be found on the project page
Widgets must be designed to meet the expectations of the user. We recommend using our widgets before looking at third party libraries for the following reasons:
When a page loads, widgets are often loaded with default values while they wait for the official value from the server. You don’t want these default values triggering change events and the defaults being sent to the server.
Only a users actions should send requests to the server
Default values or value updates coming from the server should not trigger change events that would have the value sent to the server.
Let’s use a volume slider as an example.
The slider needs to update its value as it is being moved.
Users require the real world volume to change as they move the slider to find their preferred level.
The server will also be sending value updates during the period of interaction. These should be ignored while the user is touching the slider to avoid jumping around, which users find disconcerting.
To reduce required bandwidth, we recommend that you only bind to values required to display the current screen. This is quite trivial with Angular as bindings are created and destroyed with life cycle hooks.
Angular is optimised for redraw which means life cycle events might not occur as expected.
Tabs and pop-ups are the most common offenders
ACA widgets avoid this pitfall