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 -