Skip to content

Instantly share code, notes, and snippets.

@manufitoussi
Last active October 5, 2018 15:48
Show Gist options
  • Save manufitoussi/972aebb4d4bec0e19adde1a42f7f5ef0 to your computer and use it in GitHub Desktop.
Save manufitoussi/972aebb4d4bec0e19adde1a42f7f5ef0 to your computer and use it in GitHub Desktop.
Test Bubbling action
import Ember from 'ember';
export default Ember.Component.extend({
onMonClick() {
},
actions: {
monClickAction() {
this.onMonClick();
}
}
});
import Ember from 'ember';
export default Ember.Component.extend({
onMonClick: null,
actions: {
monClickAction() {
this.sendAction('onMonClick');
}
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Test Bubbling action',
text: 'mon text',
log(text) {
this.set('text', this.text + '<br />' + text);
},
actions: {
monAction() {
this.log('in applcation');
return true;
}
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
monAction() {
this.controllerFor('application').log('in child');
return true;
}
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
monAction() {
this.controllerFor('application').log('in parent');
return true;
}
}
});
import EmberRouter from '@ember/routing/router';
import config from './config/environment';
const Router = EmberRouter.extend({
location: 'none',
rootURL: config.rootURL
});
Router.map(function() {
this.route('parent', { path: '/parent' }, function() {
this.route('child', { path: 'child' });
});
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
monRouteAction() {
this.controllerFor('application').log('in applcation route');
}
}
});
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
monRouteAction() {
this.controllerFor('application').log('in child route');
}
}
});
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
monRouteAction() {
this.controllerFor('application').log('in parent route');
}
}
});
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<h1>Welcome to {{appName}}</h1>
<ul class="nav nav-pills">
{{#link-to 'index' tagName="li"}}<a href="#">/</a>{{/link-to}}
{{#link-to 'parent' tagName="li"}}<a href="#">parent</a>{{/link-to}}
</ul>
<br>
<br>
<div class="well">
{{outlet}}
</div>
<br>
<br>
<button class="btn btn-info" {{action "monRouteAction"}}>mon action!</button>
{{my-button onMonClick=(route-action "monRouteAction") }}
{{my-button onMonClick=(action "monAction") }}
{{my-send onMonClick="monRouteAction" }}
<p class="well">
text: {{{text}}}
</p>
<button class="btn btn-primary" {{action "monClickAction"}}>my button action!</button>
<button class="btn btn-danger" {{action "monClickAction"}}>my button send action!</button>
<h4>CHILD</h4>
<p>{{coco}}</p>
<h3>PARENT</h3>
<ul class="nav nav-pills">
{{#link-to 'parent.index' tagName="li"}}<a href="#">/</a>{{/link-to}}
{{#link-to 'parent.child' tagName="li"}}<a href="#">child</a>{{/link-to}}
</ul>
{{outlet}}
{
"version": "0.15.1",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js",
"ember": "3.3.2",
"ember-template-compiler": "3.3.2",
"ember-testing": "3.3.2"
},
"addons": {
"ember-data": "3.4.2",
"ember-route-action-helper": "2.0.6"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment