Dar*_*ech 8 angularjs angular-ui-router
我有一个令人生气的问题ui-router.一切都按照我的意愿运行,所有错误的URL都发送到404州.但是,即使我的默认状态在url是正确呈现时/#/,/也会重定向到url /404/.哪能服务器的default状态,既/和/#/?
app.js
MyApp.config( function ($stateProvider, $urlRouterProvider) {
// For any unmatched url, send to 404
$urlRouterProvider.otherwise("/404/");
$stateProvider
// Home (default)
.state('default', {
url: '/',
resolve: {
...
},
}
});
Run Code Online (Sandbox Code Playgroud)
Ros*_*oss 11
我认为这将满足您的需求 -
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: {
// ...
}
// ....
});
});
Run Code Online (Sandbox Code Playgroud)
我指的是这篇文章.您可能需要使用正则表达式来处理包含数据的路由.
#您也可以使用查询字符串代替 您的URL,并$stateParams在状态中获取它.
这是你如何做到的 -
// ....
$stateProvider
.state('default', {
url: '/?data',
templateUrl: 'templates/index.html',
controller: 'defaultCtrl'
})
Run Code Online (Sandbox Code Playgroud)
然后你可以使用下面的数据回家 -
var toStateData = {
key1: 'value1',
key2: 'value2'
}
$state.go('default', {data: JSON.stringify(toStateData)});
Run Code Online (Sandbox Code Playgroud)
您不必将数据字符串化,$stateParams但这将允许使用一个参数的更多选项.在defaultCtrl控制器中,您可以像这样获取传递的查询字符串 -
var stateData = JSON.parse($stateParams.data);
var key1 = stateData.key1;
// ....
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8079 次 |
| 最近记录: |