Mein Code ist wie folgt:Staat params nicht mit ui-Router weitergegeben
$stateProvider
.state('results', {
url: '/results?a&b&c',
controller($stateParams, $state) {
'ngInject';
console.log($stateParams);
console.log($state.params);
},
template: '<div>Hello world</div>'
});
.. und wenn ich in localhost:8888/results?a=10&b=20c=30
geben, wird die Query-String aus der URL gestrippt. Und $state.go('results', {a:10, b:20, c:30}
funktioniert auch nicht. Das Ändern der Parameter von Abfragezeichenfolgenparameter in URL-Parameter funktionierte ebenfalls nicht. Es gibt irgendwo einen dummen Käfer, den ich nicht hätte quetschen können!
Ich habe versucht, von Express zu ändern, für den Server zu verbinden, aber keine Änderung. Also, hat irgendjemand das erlebt und wie haben Sie es behoben?
Meine aktuellen Verbindungseinstellungen sind wie folgt:
const connect = require('gulp-connect');
const history = require('connect-history-api-fallback');
gulp.task('serve', function() {
connect.server({
root: conf.dest,
port: conf.port,
middleware: function(connect, options) {
return [ history() ];
}
});
});
Edit:
Als ich vor $state.go
die Parameter console.log
, die Informationen korrekt ist, wenn ich console.log
$stateParams
von der Steuerung von results
, Ich bekomme { a: undefined, b: undefined, c: undefined }
.
Edit2:
Ich habe versucht, dies auch ohne Erfolg.
$stateProvider
.state('results', {
url: '/results/:a/:b/:c',
controller($stateParams, $state) {
'ngInject';
console.log($stateParams);
console.log($state.params);
},
template: '<div>Hello world</div>'
})
Und in der von-State-Controller:
class OptionsController {
constructor($state) {
this.$state = $state;
}
// ...
submit() {
console.log(this.options()); // prints the correct info
this.$state.go('results', this.options());
}
}
Update3:
habe ich einen anderen Zustand test
. Dieser Zustand sieht wie folgt aus:
$stateProvider
.state('test', {
url: '/x/:y',
controller($stateParams) {
'ngInject';
console.log(JSON.stringify($stateParams));
}
})
Als ich eingeben http://localhost:8888/x/10
, bin ich sofort zu http://localhost:8888/x/
umgeleitet. Das ist mehr als seltsam!
Routers Config mit params hinzufügen – rbinsztock
Meine andere Route Config ist '$ locationProvider.html5Mode (true);' und '$ urlRouterProvider.otherwise ('/');' – user3654410