2013-04-05 3 views
0

Я пытался узнать Ember и недавно потратил много времени на ссылку на базу кода Discourse на github. Во всяком случае, я хотел реализовать что-то похожее на их метод modal и не понимаю, почему currentViewBinding не работает.Ember currentViewBinding на ContainerView

Ниже приводится комбинация информации ссылки из этих ссылок:

App.HeaderController = Ember.Controller.extend 
    templateName: 'application/header' 
    needs: ['modal'] 

    toggleLogin: -> 
    console.log "HeaderController.toggleLogin" 
    @get('controllers.modal').show(App.LoginView.create()) 

App.ModalController = Ember.Controller.extend 
    show: (view) -> 
    @set('currentView', view) 

App.ModalView = Ember.ContainerView 
    currentViewBinding: 'controller.currentView' 

    viewChanged: (-> 
    console.log "Modal view changed" 
).observes('controller.currentView') 

App.LoginView = Ember.View.extend 
    templateName: 'modal/login' 

Мои взгляды по существу выглядеть следующим образом:

<!-- application.hbs --> 
{{render header}} 
{{outlet}} 

<!-- header.hbs --> 
<button {{action toggleLogin}}>Login</button> 
{{render modal}} 

<!-- modal/login.hbs --> 
<h2>Login Form!!</h2> 

Когда приложение изначально загружается, я получаю консоли журналы для «вида модальной изменилось», когда я нажимаю кнопку {{action toggleLogin}} в шаблоне заголовка, ничего не происходит для сообщения консоли «HeaderController исключения. toggleLogin ".

Что я делаю неправильно или это не так, как Ember.ContainerView docs предназначено для его работы?

+0

Похоже, что 'currentView' устанавливается ... но всегда остается в состоянии' preRender'. – bschaeffer

ответ