Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="[Nested components and actions]">
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="//builds.emberjs.com/tags/v1.13.5/ember-template-compiler.js"></script>
<script src="//builds.emberjs.com/tags/v1.13.5/ember.debug.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
    <script type="text/x-handlebars">
    <h2>Nesting components</h2>
    {{outlet}}
  </script>
  <script type="text/x-handlebars" data-template-name="index">
    {{#tab-menu name="my-menu" action='selectTabMenu'}}
      {{#tab-menu-item name="menu-item-1"}}
        First Item
      {{/tab-menu-item}}
      {{#tab-menu-item name="menu-item-2"}}
        Second item
       {{/tab-menu-item}}
    {{/tab-menu}}
  </script>
  
    <script type="text/x-handlebars" data-template-name="components/tab-menu">
      <div role="tabpanel">
        <ul class="nav" role="tablist">
          {{yield}}
        </ul>
      </div>
    </script>
  
    <script type="text/x-handlebars" data-template-name="components/tab-menu-item">
      <li>
        <a {{action 'selectTabMenu'}}>
          {{yield}}
        </a>
      </li>
    </script>
  
</body>
</html>
 
App = Ember.Application.create();
App.Router.map(function() {
  // put your routes here
});
App.IndexController = Ember.Controller.extend({
  actions: {
    selectTabMenu(name) {
      console.log("Selected TabMenu from index controller: " + name);
    }
  }
});
App.TabMenuComponent = Ember.Component.extend({
  actions: {
    selectTabMenu(name) {
      console.log("Selected TabMenu from TabMenu component: " + name);
    }
  }
});
App.TabMenuItemComponent = Ember.Component.extend({
  action: 'selectTabMenu',
  targetObject: Em.computed.alias('parentView'),  
  actions: {
    selectTabMenu() {
      
      console.log("Selected tab from tab-menu-item: " + this.get("name")  );
      
      this.sendAction('action', this.get("name"));
    }
  }
});
Output

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

Dismiss x
public
Bin info
lordkadapro
0viewers