从控制器-UI路由器

时间:2017-04-19 13:05:17

标签: javascript angularjs angular-ui-router

我父母有一个父州和子州。父状态有一个可选参数reviewId。一切正常,当我在$ state.go状态正确打开参数时发送参数。我需要的是在创建新评论时追加(在url中添加可选的查询参数)(在回拨结束后填充id)。

这是用ID:

打开现有评论的网址

http://localhost:3000/#/planning?reviewId=1000

创建新评论时,网址为:

http://localhost:3000/#/planning。所以我需要的是保存审核(填充身份证)以追加?reviewId = newId without state.go。

$stateProvider
            .state('root.planning', {
                url: '/planning?reviewId=',
                abstract: true,
                params: {
                    reviewId: null,
                    readOnlyMode: null,
                    locked: null,
                    editButton: null
                },
                reloadOnSearch:false,
                views: {
                    '@': {
                        templateUrl: 'src/app/modules/planning/views/planning.tpl.html',
                        controller: 'PlanningMainController as reviewvm'
                    }
                }
            })
            .state('root.planning.planning', {
                url: '',
                params: {
                    reviewId: null
                },
                data: {
                    planningChild: true,
                    stateTypeCd : "PLA"
                },
                reloadOnSearch:false,
                templateUrl: 'src/app/modules/planning/views/tabs/tab.planning.view.html',
                controller: 'PlanningController as planningvm'
            })

修改

尝试在访问Id后更新stateParams中的reviewId,然后调用$ state.reload()。使用此方法,stateParams.reviewId在重新加载后为null。而且我想知道如果没有重装我是否可以做到这一点。

1 个答案:

答案 0 :(得分:0)

$stateProvider
.state('root.planning', {
url: '/planning?reviewId',
abstract: true,
controller: function($scope, $stateParams) {
$scope.reviewId = $stateParams.reviewId;
}
如果$ statePrams.reviewId可用,则

调用该函数。希望这会对你有所帮助