ember.js - Acción de envío del componente Ember a la ruta
(1)
Para una respuesta corta, puede usar el complemento ember-route-action-helper .
<button {{action (route-action ''onButtonClick'')}}>ClickToCallRouteAction</button>
Hay tres formas de comunicación de acciones,
1. Estilo de funciones clásicas de estilo antiguo,
es decir, pasar el nombre de la función como una cadena de arriba a abajo.
y en todos los lugares necesitamos definir la misma función y proporcionar.
Use
sendAction
para hacer burbujas.
y
send
burbuja de método desde el controlador a la jerarquía de ruta.
Esto no es alentado. Ejemplo de twiddle de acciones de estilo clásico
2. Acciones de cierre
Use la función de ayuda de
action
lugar de solo cadena.
para que no necesites definirlo en todas partes.
twiddle de muestra para el
estilo de
acciones de cierre
3. Complemento
ember-route-action-helper
Puede llamar directamente a action route desde cualquier lugar literalmente simplemente envolviendo funciones usando
route-action
helper.
Comparación entre el estilo clásico y el estilo de cierre y ¿Por qué es preferible el cierre?
- En el estilo clásico, debe definir acciones en cada nivel y usar sendAction para activar la acción en cada nivel hasta que salga completamente de su anidamiento.
- Puede devolver valor en acciones de cierre pero no en acciones clásicas.
- Puede curry valores en acciones de cierre pero no en acciones clásicas.
- Las acciones de cierre fallan inmediatamente si no se encuentra la acción. pero las acciones clásicas por diseño, provocarían perezosamente errores solo en los valores de invocación.
- Complejidad de codificación como ¿quién manejará las acciones y hará la lógica de negocios?
-
En el cierre, puede combinar acción y ayuda mutua para establecer una propiedad con valor.
onclick=(action (mut title) value="titlevalue")
-
En cierre, puede especificar el objeto de destino para invocar la función.
(action ''save'' target=session)
miraría el hash deactions
en el objeto desession
lugar del contexto actual.
Algunos de los prometedores artículos sobre esto,
- artículo miguelcamba
ember-closure-actions-in-depth
- emberigniter artículo
send-closure-actions-up-data-owner
- Artículo de
lanzamiento del
blog
1.13 de
emberjs
- astillero -
ember-best-practice-stop-bubbling-and-use-closure-actions
- blog del mapa de Ember
¿Por qué ayudante de acción?
- blog de Alisdair McDiarmid
ember-closure-actions-have-return-values
- blog de alexdiliberto
ember-closure-actions
de ascuas