2012-05-31 14 views
3

我有以下ViewState的定义:Ember.js ViewState中不附加查看

App.LoggedIn = Ember.ViewState.create({ 
    view: App.TopbarView.extend({ 
    elementId: 'topbar' 
    }), 

反正我可以指定我想这个观点追加到顶栏ID的元素?

我唯一能找到的就是在输入处理程序中设置创建视图。

回答

-1

您需要传递View的实例而不是'view'属性的类。试试这个

App.LoggedIn = Ember.ViewState.create({ 
    view: App.TopbarView.create({ 
    elementId: 'topbar' 
}) 
+1

这是不正确的:如果'view'是一个类,它为你实例化,请参阅https://github.com/emberjs/ember.js/blob/5982731a69f6c5a853ac50269e1210616483c6e8/packages/ember-viewstates/lib/ view_state.js#L254-257。另外问题是如何将视图追加到给定的元素。 – pangratz

0

大概你会在StateManager中使用那个ViewState,对吗?

如果是这样,请将stateManager的rootElement设置为topbar,并且当输入此状态时,此视图将附加到该元素。

例如:

App.loggedIn = Ember.ViewState.create({ 
    view: App.TopbarView 
}); 

App.stateManager = Ember.StateManager.create({ 
    rootElement: 'topbar', 
    loggedIn: App.loggedIn 
}); 

如果您不能走这条路,你可以修改视图状态的输入功能找到的顶栏元素和视图追加到它。合理?