This is a simple app showing NgTemplate in action. Every time you type in hero-name and select a hero-power the app runs basic validation, changes template scope and updates the template. So if you provide an empty value the corresponding state in the form changes (e.g. name.valid and form.valid). Then according to template directives the container with error message shows up and submit button gets disabled. Everything restores as soon as you type in any no-empty value.
Note also that hero-name data list and hero-power options are populated from the specified scope by using `NgFor` directive.