Invocando Ações em Colaboradores de Componente
Você pode invocar ações nos colaboradores do componente diretamente do modelo.
Sintaxe
import Ember from 'ember';
export default Ember.Component.extend ({
target_attribute: Ember.inject.service(),
// code for component implementation
});
Exemplo
O exemplo fornecido a seguir especifica ações de chamada em colaboradores do componente diretamente do modelo em seu aplicativo. Crie um componente com o nome ember-actions e abra o arquivo de modelo de componente ember-actions.js criado em app / components / com o seguinte código -
import Ember from 'ember';
var inject = Ember.inject;
export default Ember.Component.extend ({
message: inject.service(),
text: 'This is test file',
actions: {
pressMe: function () {
var testText = this.get('start').thisistest();
this.set('text', testText);
}
}
});
Crie um serviço, que pode ser disponibilizado nas diferentes partes da aplicação. Use o seguinte comando para criar o serviço -
ember generate service emberactionmessage
Agora abra o arquivo de serviço emberactionmessage.js , que é criado em app / services / com o seguinte código -
import Ember from 'ember';
export default Ember.Service.extend ({
isAuthenticated: true,
thisistest: function () {
return "Welcome to Tutorialspoint";
}
});
Em seguida, crie um inicializador, que configura o aplicativo ao inicializar. O inicializador pode ser criado usando o seguinte comando -
ember generate initializer init
Abra o arquivo de inicializador init.js , que é criado em app / initializers / com o seguinte código -
export function initialize(app) {
app.inject('component', 'start', 'service:emberactionmessage');
}
export default {
name: 'init',
initialize: initialize
};
Abra o arquivo ember-actions.hbs criado em app / templates / components / e digite o seguinte código -
<button {{action "pressMe"}}>Click here to see the text</button><br>
<h4>{{text}}</h4>
{{yield}}
Crie o arquivo application.hbs e adicione o seguinte código -
{{ember-actions}}
{{outlet}}
Resultado
Execute o servidor ember; você receberá a seguinte saída -
Em seguida, clique no botão para exibir o texto da página de serviço, conforme mostrado na imagem abaixo -