下面粘贴的代码(在CoffeeScript中)有效,但我不完全确定它是在ember.js中做某事的“正确”方法。这个想法是一个人正在编辑他/她的信息。信息具有可在其间导航的不同屏幕。
特别值得注意的是,我需要在didInsertElement事件中创建StateManager,而不是将其创建为主视图的属性。否则,它不会渲染。
非常感谢任何反馈
window.App.PersonBioView = Ember.View.extend
templateName : "app_templates_person_bio"
window.App.PersonNameView = Ember.View.extend
templateName : "app_templates_person_name"
window.App.PersonMainView = Ember.View.extend
templateName : "app_templates_person_main"
showName : ->
this.subViewManager.goToState 'nameView'
showBio : ->
this.subViewManager.goToState 'bioView'
didInsertElement : ->
this.subViewManager = Ember.StateManager.create
initialState : 'nameView'
rootElement : "#content"
nameView : Ember.ViewState.create
view : window.App.PersonNameView.create
person : this.person
bioView : Ember.ViewState.create
view : window.App.PersonBioView.create
person : this.person
window.App.PersonController.mainView = window.App.PersonMainView.create
person : window.App.Person.create
firstName : "John"
lastName : "Doe"
hobbies : ''
window.App.PersonController.mainView.append()