0
我一直在嘗試學習Ember,最近花了很多時間在github上引用Discourse代碼庫。無論如何,我想實現類似於他們的modal
視圖方法的東西,不明白爲什麼currentViewBinding
不起作用。Ember currentViewBinding ContainerView
以下是從這些鏈接中引用的信息的組合:
Ember.ContainerView
documentation: Binding a view to display- Discourse's
modal_view.js
file on GitHub - Discourse's
modal_controller.js
file on GitHub
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是如何工作的?
它看起來像'currentView'正在設置...但始終保持在'preRender'狀態。 – bschaeffer 2013-04-05 20:06:21