这是在ember.js中使用StateManager的可接受方式吗?

时间:2012-03-14 19:09:34

标签: ember.js

下面粘贴的代码(在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()

0 个答案:

没有答案