我一直在嘗試和搜索關於此的文章,以及我發現在運行時僅動態添加狀態。最接近我找到的解決方案是使用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