EmberJS - Classes e instâncias
Classe é um template ou blue print, que possui uma coleção de variáveis e funções, onde as instâncias são relacionadas ao objeto daquela classe. Criar e estender a classe Ember em Ember.Object é a propriedade principal do modelo de objeto Ember.
Definindo Classes
Você pode criar uma nova classe Ember usando o método extend () do Ember.Object -
const Demo = Ember.Object.extend ({
//code here
});
O código acima cria uma nova classe Ember chamada "Demo" que herda as propriedades dos inicializadores, propriedades computadas, etc. Depois de criar a classe, você precisa criar uma instância dela usando o método create () conforme mostrado abaixo -
const state = Demo.create();
Usando a instância "state" acima, acesse as propriedades usando os métodos de acesso set e get.
console.log(state.get('stateOn'));
Você pode alterar a propriedade "stateon" usando o método set conforme mostrado abaixo -
state.set('stateOn', true);
Inicializando instância
Você pode inicializar a nova instância invocando o método init () . Ao declarar objetos na classe, você precisa inicializar cada instância com o método init () .
Exemplo
O exemplo a seguir usa as propriedades mencionadas acima e exibe uma mensagem de alerta quando um objeto Ember é inicializado -
import Ember from 'ember'; //import ember module
export default function() {
//new ember object
const Demo = Ember.Object.extend ({
init() {
alert('The default property of stateOn is : ' + this.get('stateOn'));
},
stateOn: false
});
const state = Demo.create(); //new instance from object with create() method
state.set('stateOn', true);
console.log(state.get('stateOn'));
}
Agora abra o arquivo app.js e adicione a seguinte linha no topo do arquivo -
import classinstance from './classinstance';
Onde, classinstance é o nome do arquivo especificado como "classinstance.js" e criado na pasta "app". Agora, chame a "instância de classe" herdada na parte inferior, antes da exportação. Isso executa a função classinstance que é criada no arquivo classinstance.js -
classinstance();
Resultado
Execute o servidor ember e você receberá a seguinte saída -