At the time of writing, ember-form-for is the top Ember.js plugin for forms on Ember Observer. It provides a straightforward way to display form fields without having to write all the boilerplate HTML code around it.
What you do is you take:
<label>First name: {{input value=model.firstname}}</label>
{{#each model.errors.firstname as |error|}}
<span class="errors">{{error.message}}</span>
{{/each}}
and replace it with form-for-model helper:
{{#form-for model as |f|}}
{{f.text-field "firstname"}}
.. // other fields and submit button
{{/form-for}}
It will generate HTML code for you, as well as display validation errors.
Complete form becomes much more readable this way:
{{#form-for model as |f|}}
{{f.text-field "firstname"}}
{{f.text-field "lastname"}}
{{f.select-field "gender" "unknown male female"}}
{{f.checkbox-field "terms" label="I agree to the Terms of Service"}}
{{f.submit "Submit"}}
{{/form-for}}
I’ve created a dedicated Github branch ember-form-for, that you can experiment with:
https://github.com/ember-examples/server-side-validation-mirage/tree/ember-form-for