Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>http://stackoverflow.com/questions/27146152/ember-nested-component-action-not-bubbling</title>
  <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/normalize/2.1.0/normalize.css">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  <script src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v1.3.0.js"></script>
  <script src="http://builds.emberjs.com/tags/v1.8.0/ember.js"></script>
</head>
<body>
  <script type="text/x-handlebars">
    <h2>Welcome to Ember.js</h2>
    <p> nothing to say about parent </p>
    {{#foo-bar name="foo-bar-parent"}}
    <p>this bubbles up to app controller and routes</p>
        {{foo-bar action="someAction" name="foo-bar-yielded-child"}}
    {{/foo-bar}}
    
    <br /><br />
    
    <p>how can i bubble to app controller?<p>
    {{foo-biz action="someAction"}}
  </script>
  
  <script type="text/x-handlebars" data-template-name="components/foo-bar">
    <button {{action "click"}}>{{name}}</button>
    {{yield}}
  </script>
  
  <script type="text/x-handlebars" data-template-name="components/foo-biz">
    {{foo-bar action="someAction" name="foo-bar-not-yielded"}}
  </script>
</body>
</html>
 
App = Ember.Application.create();
App.ApplicationRoute = Ember.Route.extend({
  actions:
  {
    someAction: function(){
      console.log('application route');
    }
  }
});
App.ApplicationController = Ember.Controller.extend({
  actions:
  {
    someAction: function(){
      console.log('application controller');
      return true;
    }
  }
});
App.FooBarComponent = Ember.Component.extend({
  actions:
  {
    click: function(){
      console.log("comp", this.get('name'));
      this.sendAction();
    }
  }
});
App.FooBizComponent = Ember.Component.extend({
  //if uncommented nested component sendAction is handled here
  actions: {
    someAction: function(){
      console.log('foo-biz');
      this.sendAction();
    }
  }
});
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
lockspro
0viewers