Class Errors
publicHolds validation errors for a given record, organized by attribute names.
This class is not directly instantiable.
Every Model
has an errors
property that is an instance of
Errors
. This can be used to display validation error
messages returned from the server when a record.save()
rejects.
For Example, if you had a User
model that looked like this:
```js {data-filename=app/models/user.js} import Model, { attr } from '@ember-data/model';
export default class UserModel extends Model {
add (attribute, messages) public
Defined in ../packages/model/src/-private/errors.ts:216
- attribute
- String
- the property name of an attribute or relationship
- messages
- String[]|string
- an error message or array of error messages for the attribute
Manually adds errors to the record. This will trigger the becameInvalid
event/ lifecycle method on
the record and transition the record into an invalid
state.
Example
let errors = user.errors;
// add multiple errors
errors.add('password', [
'Must be at least 12 characters',
'Must contain at least one symbol',
'Cannot contain your name'
]);
errors.errorsFor('password');
// =>
// [
// { attribute: 'password', message: 'Must be at least 12 characters' },
// { attribute: 'password', message: 'Must contain at least one symbol' },
// { attribute: 'password', message: 'Cannot contain your name' },
// ]
// add a single error
errors.add('username', 'This field is required');
errors.errorsFor('username');
// =>
// [
// { attribute: 'username', message: 'This field is required' },
// ]
clear public
Defined in ../packages/model/src/-private/errors.ts:339
Manually clears all errors for the record.
This will transition the record into a valid
state, and
will trigger the becameValid
event and lifecycle method.
Example:
let errors = user.errors;
errors.add('username', ['error-a']);
errors.add('phone', ['error-1', 'error-2']);
errors.errorsFor('username');
// =>
// [
// { attribute: 'username', message: 'error-a' },
// ]
errors.errorsFor('phone');
// =>
// [
// { attribute: 'phone', message: 'error-1' },
// { attribute: 'phone', message: 'error-2' },
// ]
errors.clear();
errors.errorsFor('username');
// => undefined
errors.errorsFor('phone');
// => undefined
errors.messages
// => []
errorsFor (attribute) Array public
Defined in ../packages/model/src/-private/errors.ts:117
- attribute
- String
- returns
- Array
Returns errors for a given attribute
let user = store.createRecord('user', {
username: 'tomster',
email: 'invalidEmail'
});
user.save().catch(function(){
user.errors.errorsFor('email'); // returns:
// [{attribute: "email", message: "Doesn't look like a valid email."}]
});
has (attribute) Boolean public
Defined in ../packages/model/src/-private/errors.ts:399
- attribute
- String
- returns
- Boolean
true if there some errors on given attribute
Checks if there are error messages for the given attribute.
```js {data-filename=app/controllers/user/edit.js} import Controller from '@ember/controller'; import { action } from '@ember/object';
export default class UserEditController extends Controller {
remove (member) public
Defined in ../packages/model/src/-private/errors.ts:288
- member
- String
- the property name of an attribute or relationship
Manually removes all errors for a given member from the record.
This will transition the record into a valid
state, and
triggers the becameValid
event and lifecycle method.
Example:
let errors = user.errors;
errors.add('phone', ['error-1', 'error-2']);
errors.errorsFor('phone');
// =>
// [
// { attribute: 'phone', message: 'error-1' },
// { attribute: 'phone', message: 'error-2' },
// ]
errors.remove('phone');
errors.errorsFor('phone');
// => undefined