2017-01-02 6 views
1

Ich möchte, dass der Controller nicht neu geladen wird, wenn sich der Abfrageparameter ändert. Ich habe versucht, reloadOnSearch als falsch einzustellen, noch lädt der Kontroller auf das Ändern der stateparam.Aktualisiere Zustandsparameter ohne Nachladen des Controllers

Hier ist der Code, den ich verwende, um die Ergebnisse zu erzielen.

$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' 

      }) 

Zum Beispiel, wenn die Zustandsänderungen /main/welcome/1-/main/welcome/2 die Steuerung neu geladen, die ich will es nicht zu.

+0

Version von 'ui-router'? – tasseKATT

+0

@tasseKATT Version ist 1.0.0alpha0 –

Antwort

1

In ui-Router 1.0.0 Sie dynamische Parameter verwenden können:

dynamischen Parameter (der Ersatz für reloadOnSearch) kann wie so in einem params Block in einem Zustand Definition deklariert: params; { fooParam: {dynamisch: wahr}}. Wenn sich ein dynamischer Parameter ändert, bewirkt er nicht, dass der Status neu geladen wird. Ein Controller/Komponente Callback uiOnParamsChanged kann verwendet werden, um über den Parameter Änderungen benachrichtigt zu werden.

Zum Beispiel:

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

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

+0

Vielen Dank für die Hilfe. Es hat funktioniert :) –

+0

Gern geschehen :) – tasseKATT

Verwandte Themen