我认为这可以满足您的需求 -
MyApp.config(function($stateProvider, $urlRouterProvider) {
// the known route
$urlRouterProvider.when('', '/');
// For any unmatched url, send to 404
$urlRouterProvider.otherwise('/404');
$stateProvider
// Home (default)
.state('default', {
url: '/',
resolve: {
// ...
}
// ....
});
});
我提到这个帖子 https://stackoverflow.com/questions/20885365/home-route-in-ui-router?rq=1。您可能需要使用正则表达式来处理带有数据的路由。
而不是#
在您的 URL 中,您也可以使用查询字符串并通过以下方式获取它$stateParams
处于某种状态。
您可以这样做 -
// ....
$stateProvider
.state('default', {
url: '/?data',
templateUrl: 'templates/index.html',
controller: 'defaultCtrl'
})
然后您可以使用下面的数据回家 -
var toStateData = {
key1: 'value1',
key2: 'value2'
}
$state.go('default', {data: JSON.stringify(toStateData)});
您不必将数据字符串化$stateParams
但这将允许使用一个参数提供更多选项。在里面defaultCtrl
控制器你可以像这样获取传递的查询字符串 -
var stateData = JSON.parse($stateParams.data);
var key1 = stateData.key1;
// ....