Invocación de acciones en colaboradores de componentes

Puede invocar acciones en colaboradores de componentes directamente desde la plantilla.

Sintaxis

import Ember from 'ember';

export default Ember.Component.extend ({
   target_attribute: Ember.inject.service(),
   // code for component implementation
});

Ejemplo

El ejemplo que se muestra a continuación especifica la invocación de acciones en colaboradores de componentes directamente desde la plantilla en su aplicación. Cree un componente con el nombre ember-actions y abra el archivo de plantilla de componente ember-actions.js creado en app / components / con el siguiente 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);
      }
   }
});

Cree un servicio, que puede estar disponible en las diferentes partes de la aplicación. Utilice el siguiente comando para crear el servicio:

ember generate service emberactionmessage

Ahora abra el archivo de servicio emberactionmessage.js , que se crea en app / services / con el siguiente código:

import Ember from 'ember';

export default Ember.Service.extend ({
   isAuthenticated: true,
   thisistest: function () {
      return "Welcome to Tutorialspoint";
   }
});

A continuación, cree un inicializador, que configura la aplicación a medida que se inicia. El inicializador se puede crear usando el siguiente comando:

ember generate initializer init

Abra el archivo inicializador init.js , que se crea en app / initializers / con el siguiente código:

export function initialize(app) {
   app.inject('component', 'start', 'service:emberactionmessage');
}

export default {
   name: 'init',
   initialize: initialize
};

Abra el archivo ember-actions.hbs creado en app / templates / components / e ingrese el siguiente código:

<button {{action "pressMe"}}>Click here to see the text</button><br>  
<h4>{{text}}</h4>
{{yield}}

Cree el archivo application.hbs y agregue el siguiente código:

{{ember-actions}}
{{outlet}}

Salida

Ejecute el servidor Ember; recibirá el siguiente resultado:

Luego haga clic en el botón, se mostrará el texto de la página de servicio como se muestra en la captura de pantalla a continuación: