title: Accessing app object from Marionette ItemView method
body: <p>In the following code, I am trying to trigger an event using dynamic require. For some reason I am not able to access app object in the eventRouter method. I am getting "TypeError: app is undefined" error. I have implemented listener on show event in respective controller files.</p>
  
  <p>My question is similar to <a href="https://stackoverflow.com/questions/17492872/backbone-marionette-event-aggregator-how-to-listen-at-the-app-level-to-itemvie?rq=1"> this</a> post except my listeners are in different controller files and I am not able to access app object as suggested in the post.</p>
  
  <p>Help appreciated !!!!  </p>
  
  <pre><code>define(["app",
      "tpl!templates/nav/nav.tpl",
      "tpl!templates/nav/navMenuItem.tpl",
      "entities/navEntity"
  ],
  function(app, navTpl, navMenuItem, navEntity){
      navMenuItem =  Backbone.Marionette.ItemView.extend({
          template: navMenuItem,
          events: {
              "click a": "eventRouter"
          },
          eventRouter:function(ev)
          {
              var that = this;
              var moduleName = $(ev.currentTarget).text().toLowerCase();
              require(['controllers/' + moduleName + 'Controller'], function(controller){
              app.trigger(moduleName + ':show');
          });
      }
    });
  
      navMenu = Backbone.Marionette.CollectionView.extend({
          tagName: 'ul',
        itemView: navMenuItem,
        collection: navEntity.navItems,
      });
  
      return {
          navMenu:    navMenu,
          navMenuItem: navMenuItem
      }
  });
  </code></pre>