2015-07-19 65 views
1

我注意到,無論何時將一個$state.go()應用於AngularJS UI-Router中帶有參數的狀態,HTML內容的一個新實例[for每次都會創建該視圖]。在稍後的程序中調用$state.go()之後,不僅HTML內容,而且控制器的創建次數也更多,因爲更新的參數出現在$stateParams上。angular-js:在UI路由器中創建控制器的多個實例

如何阻止HTML內容和控制器的新實例停止出現,同時仍然將參數傳遞到$stateParams?我想爲$stateParams擁有的任何數據使用相同的控制器,相同的範圍和相同的HTML內容。非常感謝您提前!

+0

適應您是如何來知道多實例被創建?你能創造一個小提琴嗎? – ngLover

+0

我不完全確定你的「HTML內容實例」是什麼意思,或者你的確切場景是什麼,但我認爲你看到的是完全預期的。控制器不是像服務那樣​​的單身人士。每次顯示帶控制器的視圖時,都會創建一個新的作用域實例和一個新的控制器。爲什麼這是一個問題? –

+0

@ngLover,正在創建多個HTML代碼實例。假設我有一個類似'

content
'的代碼,多個實例就像'
content
content
'一樣。這適用於UI路由器創建的任何內容。所以你可以使用任何你喜歡的小提琴,在它的url中包含一個參數。 –

回答

1

是的,這是可能的。禁用緩存。

這是以各種方式完成的。其中一種方法是在定義狀態時禁用緩存。例如:

$stateProvider.state("home", 
    { 
     url:'/home', 
     cache:false, 
    } 

ui.router not reloading controller

相關問題