Bear with me - I'm an AngularJS newb.
I have a form that I want to be available from anywhere in my app, and I'm trying to figure out how to code that. My current attempt is to put the modal into a service, like this:
.service('NewObjectService', function() {
  var svc = this;
  svc.showModal = function() {
    $ionicModal.fromTemplateUrl('template.html', {
      scope: null, // what should I do here?
      animation: 'slide-in-up'
    }).then(function(modal) {
      svc.modal = modal;
      modal.show();
    });
  }
})
.controller('NewObjectController', function() {
  $scope.$on('$ionicView.enter', function() {
    console.log('NewObjectController');
    // setup new object
  })
})
Then from anywhere in my app, I can call NewObjectService.showModal() and the modal pops up.  That part is working.
The trouble I'm running into is that I can't get my controller to fire, so the initialization never gets called and my new object is null.
It seems like I should actually be calling the modal from within NewObjectController to setup scope, but I tried that and I couldn't figure out how to call that controller from within other controllers - hence the service.
I know I'm just doing something fundamentally wrong, but I'm not sure what it is. Any help?
Update: I also just tried calling one controller from another using a root scope broadcast:
.controller('MainCtrl', function() {
  this.showModal = function() {
    $rootScope.$broadcast('new_object:show_modal');
  }
})
.controller('NewObjectCtrl', function() {
  $rootScope.$on('new_object:show_modal', function() {
    // show modal
  })
})
The problem I'm running into there is that NewObjectCtrl hasn't been invoked at the time MainCtrl runs, so it doesn't catch the broadcast event.
 
    