2012-05-31 13 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 
}); 

如果您不能走這條路,你可以修改視圖狀態的輸入功能找到的頂欄元素和視圖追加到它。合理?