Class Model
| Extends: | EmberObject |
|---|---|
| Uses: | EmberData.DeprecatedEvented |
| Defined in: | ../model/addon/index.ts:1 |
| Module: | @ember-data/model |
In EmberData a Model is a class defining the attributes and relationships of a specific resource type (model name). In this sense it represents a static "schema".
Data for individual resources fetched from your API is presented to the UI via instances of the Models you define.
An instantiated Model is referred to as a record.
When we refer to the ModelClass we are referring to the class definition and the static schema methods present on it.
When we refer to a record we refer to a specific class instance presenting the resource data for a given type and id.
Defining a Model
app/models/person.js import Model, { attr, belongsTo, hasMany } from '@ember-data/model';
export default class PersonModel extends Model {
@attr name;
@belongsTo('pet', { inverse: 'owners', async: false }) dog;
@hasMany('person', { inverse: 'friends', async: true }) friends;
} modelName convention
By convention, the name of a given model (its type) matches the name of the file in the app/models folder and should be lowercase, singular and dasherized. @mainName @ember-data/model @tag main
Methods
- belongsTo
- changedAttributes
- deleteRecord
- destroyRecord
- eachAttribute
- eachRelatedType
- eachRelationship
- eachTransformedAttribute
- hasMany
- inverseFor
- reload
- rollbackAttributes
- save
- serialize
- toJSON
- toString
- typeForRelationship
- unloadRecord
Properties
- adapterError
- attributes
- dirtyType
- errors
- fields
- hasDirtyAttributes
- id
- isDeleted
- isEmpty
- isError
- isLoaded
- isLoading
- isNew
- isReloading
- isSaving
- isValid
- modelName
- relatedTypes
- relationshipNames
- relationships
- relationshipsByName
- store
- transformedAttributes
Events
© 2020 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.
https://api.emberjs.com/ember-data/3.25/classes/Model