Для короткого ответа вы можете использовать аддон ember-route-action-helper.
<button {{action (route-action 'onButtonClick')}}>ClickToCallRouteAction</button>
Есть три способа действия связи,
1. Старый стиль классические функции стиля т., Передавая имя функции в виде строки сверху вниз. и во всех местах нам нужно определить ту же функцию и обеспечить. Используйте sendAction
для создания пузырьков. и send
метод пузырька от контроллера до иерархии маршрутов.
Это не рекомендуется. образец классического стиля actions twiddle
2. Закрытие действия Использование action
помощник передача функции, а не только строки. так что вам не нужно определять его везде. sample twiddle for closure actions стиль
3. route-action-helper addon Вы можете напрямую вызвать действие маршрут из любой точки мира буквально только оберточной функций с помощью route-action
помощника.
Sample twiddle
Comparision между классическим стилем и стилем Закрытия и почему Закрытием является preferrable?
- В классическом стиле, Вы должны определить действия на каждом уровне и использовать sendAction, чтобы вызвать действие на каждом уровне, пока вы не получили весь путь из вашего вложенности.
- Вы можете вернуть значение в действиях закрытия, но не в классических действиях.
- Вы можете каррировать значения в действиях закрытия, но не в классических действиях.
- Действия закрытия немедленно прекращаются, если действие не найдено. но классические действия по дизайну лениво поднимали ошибки только при вызове значений .
- Сложность кодирования, как кто будет обрабатывать действия и делать бизнес-логику ?.
- В закрытии вы можете комбинировать действие и помощник мута, чтобы установить свойство со значением.
onclick=(action (mut title) value="titlevalue")
- В закрытии вы можете указать целевой объект для вызова функции.
(action 'save' target=session)
будет рассматривать хэш на actions
на объекте session
вместо текущего контекста.
Некоторых перспективных статей относительно этого,
- miguelcamba статьи ember-closure-actions-in-depth
- emberigniter статьи send-closure-actions-up-data-owner
- emberjs блог 1.13 release article
- эллинг - ember-best-practice-stop-bubbling-and-use-closure-actions
- блог с карты Ember Why action helper?
- блог от Alisdair McDiarmid ember-closure-actions-have-return-values
- blog from alexdiliberto ember-closure-actions
Почему * стиль стиля классических функций стиля * не рекомендуется? Можете ли вы подробнее рассказать о различии между (1) и (2). –
@ LiXinyang Обновленная разница и почему закрытие является предпочтительным и наряду с хорошей статьей. – kumkanillam
Спасибо за ваше время @kumkanillam. Upvoted! +10 Все эти справки велики –