2013-06-05 61 views
1

我有一個多頁流程,當我使用'transitionTo'返回到已經顯示的路由/視圖時,'didInsertElement'方法沒有被調用。 (雖然它是在第一次顯示視圖時被解僱的)EmberJS - didInsertElement先前顯示的視圖

是否有我的視圖可以掛鉤的事件,每當它被顯示時都會被調用?

我的路線是這個樣子

App.Router.map(function() { 
    this.resource("parent", { path: "/parent" }, function() { 
     this.resource("child", { path: "/child" }); 
    }); 
}); 

所以,當我在子視圖,並呼籲:

this.transitionTo('parent') 

父視圖不火「didInsertElement」。

+0

同一路線的這些其他視圖? AKA'/ post/1'和'/ post/2' –

+0

一個是另一個的嵌套視圖。我會更新我的描述。 –

+0

你想在視圖的didInsertElement鉤子中做什麼? – selvagsz

回答

1

我發現我可以在路線中使用setupController以在每次渲染路線時通知我。我知道這不是最好的解決方案,但到目前爲止,它是最可靠的。

0

父項已經呈現,因爲子項呈現在父項的出口內。當你轉換回父視圖時,你想做什麼?有可能有更好的方法來做你想做的事

+0

我正在嘗試重置視圖的原始視圖。這是一個從顯示錶格到顯示進度指標的登錄屏幕。當這個人回到這個視圖時,它需要重新設置以再次顯示登錄表單。我也想保持登錄視圖本身的邏輯。所以,我認爲我正在尋找一個事件,當視圖顯示時會觸發。 –

+0

在這個問題上的任何更新?我目前遇到同樣的問題。 – Vinch

0

如果你的路線嵌套你的模板應該也是。所以我希望你的模板看起來像這樣:

<script type="text/x-handlebars" data-template-name="parent"> 
    <!-- Your parent View stuff --> 

    {{outlet}} <!-- This is where your child gets rendered 
</script> 

所以你的父視圖的東西已經插入並保持插入。當你進入/離開父母時,它不應該在任何地方。

你到底想要做什麼,你需要didInsertElement後回到父母。 didInsertElement掛鉤實際上是用於較低級別的dom操作,例如設置jQuery插件。如果你試圖做更多的應用邏輯的東西,它可能屬於別的地方。

+0

我試圖重置視圖的原始狀態。這是一個從顯示錶格到顯示進度指標的登錄屏幕。當人員回到它時,需要重新設置以再次顯示登錄表單。我也想保持登錄視圖本身的邏輯。所以,我認爲我正在尋找一個事件,當視圖顯示時會觸發。 –

相關問題