2016-06-03 3 views
0

Во-первых, я довольно новичок в Ember, так что все, что меня окружает, меня легко запутывает.Используйте действие маршрута приложения в компоненте шаблона

Я работаю в рамках существующего приложения Ember. В приложении routes/application.js.es6 указаны действия. Учитывая, что эти действия находятся в маршруте приложения, могу ли я получить к ним доступ из любого места?

Я специально ищу, чтобы использовать один из действий маршрута приложения в шаблоне/компоненте.

В файле js компонента мне нужно ввести или импортировать что-то, чтобы использовать действие из маршрута приложения?

ответ

1

This demo perfectly demonstrates the thing you try to achieve.

Во-первых, определить действия в заявке маршруту:

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    actions: { 
    myActionFromApp() { 
     console.log('myAction from application fired'); 
    } 
    } 
}); 

Затем в шаблоне имени прохода действия к компоненту:

{{my-component myAction='myActionFromApp'}} 

Тогда вы можете позвонить ApplicationRoute действие из компонента :

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    actions: { 
    myAction() { 
     this.sendAction('myAction'); 
    } 
    } 
}); 

В демке я это делаю, когда кнопка кто-то щелкает:

<button {{action 'myAction'}}>Fire action myAction</button> 

Результат в консоли:

MyAction от применения выстрелил

При нажатии на кнопку, которая, как ожидается.

Смежные вопросы