Voglio cambiare l'url della mia app angularjs al volo rinunciando a un campo di input.Come posso modificare i parametri in url con AngularJS?
ad es.
- rimango su:
http://localhost/test/year/2012
- cambierò sul lato attraverso un campo di input l'anno al 2013 che chiamano la mia funzione yearIsChanged, che l'url dovrebbe cambiato in
http://localhost/test/year/2013
- Ma con il mio attuale configurazione l'url è cambiato in
http://localhost/test/year/2012/?year=2013
La mia configurazione di configurazione.
var module = angular.module('exampleApp').
config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/test/year/:year', {templateUrl: 'partials/test.html', controller: OverviewCtrl, reloadOnSearch: false}).
otherwise({redirectTo: '/'});
}]);
azione di controllo:
function OverviewCtrl($scope,$routeParams, $location) {
$scope.yearIsChanged = function() {
$location.search('year', $scope.year);
}
}
Ok, che cambiare il mio url correttamente. Ma con '$ location.url (...)' la pagina si sta ricaricando e il parametro "' reloadOnSearch': false "non funziona. AngularJS ha un altro parametro per es. 'ReloadOnUrlChange'? – Silver52
Il tuo OverviewCtrl verrà eseguito nuovamente quando il percorso cambia effettivamente (ad esempio non quando inserisci '2012') – asgoth
Se inserisco qualcosa nel mio campo di input, il controller viene reinizializzato e ho perso il focus del mio campo di input. È un problema perché non posso mettere a fuoco il campo di input per ogni personaggio. : D – Silver52