我一直在尝试和搜索关于此的文章,以及我发现在运行时仅动态添加状态。最接近我找到的解决方案是使用deferIntercept
,$urlRouter.sync()
和$urlRouter.listen()
。但是,$urlRouter
似乎只能在运行时使用(在控制器用户操作之前运行)。在控制器中添加路由
这个plunker显示工作动态添加状态到运行时但挑战是在控制器中实现它。
下面是我想要实现的说明。我一直在这个问题上挣扎数周。希望有人能给我一些关于如何实现愿望结果的暗示。
// Predefined state in config
$stateProvider.state('default', {
url: '',
templateUrl: '',
})
// Predefined state in config
$stateProvider.state('home', {
url: '',
templateUrl: '',
})
// Additional Added state in controller when user click button
$scope.clickButton = function() {
$stateProvider.state('newpage', {
url: '',
templateUrl: ''
})
};
有你有充分回答(s)http://stackoverflow.com/q/24727042/1679310。它们涵盖了启动场景(从服务器数据配置状态)并在运行时添加新的状态... –
检查这可能有助于http://stackoverflow.com/questions/25866387/angular-ui-router-programmatically-add-states/31478967 – nmanikiran
@RadimKöhler感谢您的评论,我也通读了问题和答案。但是我想在控制器用户操作中添加新的状态,而不是在运行时。 – stackdisplay