Skip to content

Instantly share code, notes, and snippets.

@mariechatfield
Last active August 26, 2017 01:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mariechatfield/95bf1c8bcbbbe3569fe17dcfcf27e27c to your computer and use it in GitHub Desktop.
Save mariechatfield/95bf1c8bcbbbe3569fe17dcfcf27e27c to your computer and use it in GitHub Desktop.
Parent Event Stops Propagation of Child Action
import Ember from 'ember';
export default Ember.Controller.extend({
logs: [],
actions: {
log(line) {
this.get('logs').pushObject(line);
},
stopPropagation(event) {
this.get('logs').pushObject('This event stops propagation');
event.stopPropagation();
}
}
});
body {
margin: 12px 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
--padding-xsmall: 4px;
--padding-small: 8px;
--padding-medium: 16px;
--padding-large: 32px;
--color-text: #F1EFF3;
--color-light: #6C5084;
--color-medium: #350F57;
--color-dark: #140620;
}
.parent {
padding: var(--padding-medium);
margin: var(--padding-large) 0;
max-width: 400px;
color: var(--color-text);
background-color: var(--color-medium);
border: 1px solid var(--color-dark);
}
.child {
padding: var(--padding-small);
margin: var(--padding-small) 0;
cursor: pointer;
background-color: var(--color-light);
border: 1px solid var(--color-dark);
}
<div class="parent" onclick={{action "stopPropagation"}}>
Parent that stops propgation onclick
<div class="child" {{action "log" "child"}}>Child (will never fire its Ember action)</div>
</div>
<div class="parent" onclick={{action "log" "parent"}}>
Parent that does <strong>not</strong> stop propgation onclick
<div class="child" {{action "log" "child"}}>Child (will fire after parent)</div>
</div>
Events:
<ol>
{{#each logs as |log|}}
<li>{{log}}</li>
{{/each}}
</ol>
{
"version": "0.12.1",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "2.12.0",
"ember-template-compiler": "2.12.0",
"ember-testing": "2.12.0"
},
"addons": {
"ember-data": "2.12.1"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment