When using Bootstrap 3.0 and final Ember 1.0, I couldn't get this code working.
I rewrote it a bit (in coffeescript, layout and template handlebars are already precompiled to js with Grunt's emberTemplates)
app.coffee
App.ApplicationRoute = Ember.Route.extend({
actions:
open: ->
console.debug('open action triggered')
@render('ContactModal', {into: 'profile', outlet: 'contactModal'})
close: ->
@render('nothing', {into: 'profile', outlet: 'contactModal'})
save: ->
alert('Send the message to person')
})
modal_view.coffee
App.ModalView = Ember.View.extend({
didInsertElement: ->
@$('.modal').modal('show')
view = @
@$('.modal').on("hidden.bs.modal", (ev)->
view.controller.send('close')
return
)
layout: Ember.TEMPLATES['modal_layout']
template: Ember.TEMPLATES['modal']
actions:
close: ->
@$('.modal').modal('hide')
return
})
This way clicking outside the modal also closes it properly, since removing the template from outlet is done on hiding the modal.
modal.handlebars:
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" {{action close target="view"}}>×</button>
<h3 class="modal-title">Contact</h3>
</div>
<div class="modal-body">
<p>Here will go the contact form and contact template picker</p>
</div>
<div class="modal-footer">
<a href="#" class="btn btn-default" {{action close target="view"}}>Close</a>
<a href="#" class="btn btn-primary" {{action save}}>Send</a>
</div>
</div>
modal_layout.handlebars
<div class="modal fade" role="dialog">{{yield}}<div>
I also put togheter a jsfiddle: http://jsfiddle.net/bG4F8/5/
Have fun :)