AngularJS-Ui路由器-自动从根状态重定向
我想简单地重定向从/到/商店每一个人键入根。我试过在控制器中使用$state.go,但没有成功。我想在没有$urlRouterProvider的情况下完成它。否则,我的web中也有没有路由的URL。有什么办法吗?提前谢谢AngularJS-Ui路由器-自动从根状态重定向,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我想简单地重定向从/到/商店每一个人键入根。我试过在控制器中使用$state.go,但没有成功。我想在没有$urlRouterProvider的情况下完成它。否则,我的web中也有没有路由的URL。有什么办法吗?提前谢谢 app.config(function($stateProvider, $urlRouterProvider) { $stateProvider.state('root', { url: "/", controller: { funct
app.config(function($stateProvider, $urlRouterProvider) {
$stateProvider.state('root', {
url: "/",
controller: {
function() {
$state.go('shop')
}
}
}).state('shop', {
url: "/shop",
controller: 'myCtrl',
templateUrl: "/shopcontent.jsp"
})
});
您的控制器应如下所示:
controller: function($state) {
if ($state.current.name == 'root') {
$state.go('shop');
}
}
您需要在控制器函数中注入$state。您的控制器应如下所示:
controller: function($state) {
if ($state.current.name == 'root') {
$state.go('shop');
}
}
您需要在控制器函数中注入$state。尝试以下操作:
在run函数中,向$stateChangeStart添加一个侦听器,以便状态发生更改时,它将检查它是否为root,然后将更改为shop:
.run(["$injector", "$rootScope",
function($injector, $rootScop) {
$rootScope.$state = $injector.get("$state");
//-----Track State Change for request Token -------------
$rootScope.$stateChangeStart = [];
$rootScope.$on("$stateChangeStart",
function(event, toState, toParams, fromState, fromParams) {
if (fromState.name == "root") {
$state.go('shop')
}
$rootScope.$stateChangeStart.push({
toState: toState,
toParams: toParams,
fromState: fromState,
fromParams: fromParams
});
});
}
]);
试试这个:
在run函数中,向$stateChangeStart添加一个侦听器,以便状态发生更改时,它将检查它是否为root,然后将更改为shop:
.run(["$injector", "$rootScope",
function($injector, $rootScop) {
$rootScope.$state = $injector.get("$state");
//-----Track State Change for request Token -------------
$rootScope.$stateChangeStart = [];
$rootScope.$on("$stateChangeStart",
function(event, toState, toParams, fromState, fromParams) {
if (fromState.name == "root") {
$state.go('shop')
}
$rootScope.$stateChangeStart.push({
toState: toState,
toParams: toParams,
fromState: fromState,
fromParams: fromParams
});
});
}
]);
签出重定向到状态定义属性
从ui路由器文档:
同步或异步地将转换重定向到其他位置
状态/参数
如果定义了此属性,将直接转换到此状态
将根据属性的值重定向
例如:
完整的工作示例:
如果要将任何未知路径重定向到/shop,可以使用以下方法:
$urlRouterProvider.otherwise('/shop');
签出重定向到状态定义属性
从ui路由器文档:
同步或异步地将转换重定向到其他位置
状态/参数
如果定义了此属性,将直接转换到此状态
将根据属性的值重定向
例如:
完整的工作示例:
如果要将任何未知路径重定向到/shop,可以使用以下方法:
$urlRouterProvider.otherwise('/shop');
当有人键入root并使用$state.go转到所需页面时,在控制器中调用函数。别忘了在控制器中注入$state我的问题是如何在我的控制器中检测某人何时进入/您可以使用$state.current.name获取当前状态名称。在本例中,它将为您提供“root”。我在控制器中尝试了类似的操作,但似乎不起作用。我确保$state被注入函数{if$state.current.name='root'{$state.go'shop';};当有人键入root并使用$state.go转到所需页面时,在控制器中调用函数。别忘了在控制器中注入$state我的问题是如何在我的控制器中检测某人何时进入/您可以使用$state.current.name获取当前状态名称。在本例中,它将为您提供“root”。我在控制器中尝试了类似的操作,但似乎不起作用。我确保$state被注入函数{if$state.current.name='root'{$state.go'shop';};我将另一个标记为正确,因为方法更简单,但感谢您的洞察力!我将另一个标记为正确,因为方法更简单,但感谢您的洞察力!