【问题标题】:angular $state.go with param to parent state带参数的角度 $state.go 到父状态
【发布时间】:2015-10-28 12:31:37
【问题描述】:

我想导航到子状态,但需要将参数传递给父状态。

例如我的配置:

$stateProvider
                .state('app', {
                    url: "/app",
                    abstract:true,
                    templateUrl: "tpl/app.html"
                })
                .state('app.loggedin', {
                    url: "/{cUserIndex:[0-9]{1,4}}",
                    templateUrl: "tpl/home.html",
                    controller: 'HomeCtrl',
                })
                .state('app.loggedin.dashboard',{
                    url : "/dashboard",
                    controller : "tempCtrl",
                    templateUrl: 'tpl/loggedin/index.html'
                })

当我导航到:

$state.go("app.loggedin", {cUserIndex: 1});

我的网址是:

/app/1

但我希望默认加载仪表板状态,我的 URL 应该是:

/app/1/dashboard

我如何加载 app.loggedin.dashboard 状态,其中 login 应该传递 stateParam。类似的东西

$state.go("app.loggedin.dashboard", {cUserIndex: 1}); cUserIndex 应该在 app.loggedin 而不是 app.loggedin.dashboard 状态中传递

【问题讨论】:

    标签: javascript angularjs uiview angular-ui-router


    【解决方案1】:

    尝试使用URLRouterProvider。类似的东西

    $urlRouterProvider.when('/app/[0-9]{1,4}', '/app/[0-9]{1,4}/dashboard')
    

    【讨论】:

    • 感谢这个技巧,但我不想保留对 url 的任何依赖,因为以后我可能会将每个状态的 url 保留为空白,并且应用程序应该只能由状态管理
    • 使用 URLRouterProvider 的正确说法是:$urlRouterProvider.when('/app/:cUserIndex', '/app/:cUserIndex/dashboard');
    猜你喜欢
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多