2017-01-02 110 views
1

我希望控制器在查詢參數更改時不重新加載。我試圖將reloadOnSearch設置爲false,但控制器在更改stateparam時重新加載。更新參數狀態,無需重新加載控制器

這是我用來實現結果的代碼。

$stateProvider 
      .state('login', { 
       url: '/login', 
       templateUrl: 'templates/login.html', 
       controller:'loginCtrl' 
      }) 
      .state('layout', { 
       url: '/layout', 
       templateUrl: 'templates/layout.html', 
       controller:'layoutCtrl' 
      }) 
      .state('main', { 
       url: '/main', 
       templateUrl: 'templates/main.html', 
       abstract:true, 
       controller:'mainCtrl'    
      }) 
      .state('main.welcome', { 
       url: '/welcome/:id', 
       templateUrl: 'templates/welcome.html', 
       reloadOnSearch : false, 
       controller:'greetingCtrl' 

      }) 

例如,當狀態從/main/welcome/1/main/welcome/2我不希望它控制重載。

+0

'UI-router'的版本? – tasseKATT

+0

@tasseKATT版本是1.0.0alpha0 –

回答

1

UI-路由器 1.0.0則可以使用動態參數:

動態參數(更換爲reloadOnSearch)可以 在像這樣的狀態下定義一個PARAMS塊中聲明:PARAMS; {fooParam:{dynamic:true}}。當動態參數更改時,它不會導致重新加載狀態。控制器/組件 回調函數uiOnParamsChanged可用於通知參數 的更改。

例如:

.state('main.welcome', { 
    url: '/welcome/:id', 
    params: { 
    id: { 
     dynamic: true 
    } 
    }, 
    templateUrl: 'templates/welcome.html', 
    controller: 'greetingCtrl' 
}) 

演示:http://run.plnkr.co/uGARJoK2zxGVa2VL/#/main/welcome/1

+0

謝謝你的幫助。它的工作:) –

+0

不客氣:) – tasseKATT

相關問題