我的代碼是這樣的:國家PARAMS不與UI的路由器通過
$stateProvider
.state('results', {
url: '/results?a&b&c',
controller($stateParams, $state) {
'ngInject';
console.log($stateParams);
console.log($state.params);
},
template: '<div>Hello world</div>'
});
..而當我通過在localhost:8888/results?a=10&b=20c=30
,查詢字符串從URL中剝離。並且$state.go('results', {a:10, b:20, c:30}
也不起作用。將查詢字符串params中的參數更改爲url參數也無效。這裏有一些愚蠢的錯誤,我無法壓扁!
我已經嘗試從快遞更改爲連接服務器,但沒有變化。所以有誰經歷過這個,你是如何解決它的?
我的當前連接設置如下:
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() ];
}
});
});
編輯:
當我$state.go
之前console.log
的參數,該信息是正確的,當我console.log
$stateParams
從results
控制器,我得到{ a: undefined, b: undefined, c: undefined }
。
EDIT2:
我想這也無濟於事。
$stateProvider
.state('results', {
url: '/results/:a/:b/:c',
controller($stateParams, $state) {
'ngInject';
console.log($stateParams);
console.log($state.params);
},
template: '<div>Hello world</div>'
})
而且在從狀態控制器:
class OptionsController {
constructor($state) {
this.$state = $state;
}
// ...
submit() {
console.log(this.options()); // prints the correct info
this.$state.go('results', this.options());
}
}
UPDATE3:
我創造了另一個狀態test
。這種狀態是這樣的:
$stateProvider
.state('test', {
url: '/x/:y',
controller($stateParams) {
'ngInject';
console.log(JSON.stringify($stateParams));
}
})
當我進入http://localhost:8888/x/10
,我立即重定向到http://localhost:8888/x/
。這超出了怪誕!
使用參數添加路由器的配置 – rbinsztock
我的另一個途徑是配置'$ locationProvider.html5Mode(真);'和'$ urlRouterProvider.otherwise( '/');' – user3654410