【发布时间】:2017-04-19 13:05:17
【问题描述】:
我有一个父状态和该父状态的子状态。父状态有一个可选参数 reviewId。一切正常,当我发送 $state.go 中的参数时,状态已正确打开。我需要的是在创建新评论时附加(在 url 中添加可选的查询参数)(在进行后端调用后填充 id)。
这是用 id 打开现有评论的网址:
http://localhost:3000/#/planning?reviewId=1000.
创建新评论网址时为:
http://localhost:3000/#/planning。所以我需要的是在保存审核(填充 ID)后附加 ?reviewId=newId 而没有 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 在重新加载后为空。我想知道我是否可以在不重新加载的情况下做到这一点。
【问题讨论】:
-
创建新评论 ID 后,将其分配给 $stateParam.reviewId,之后您可能需要执行 $state.reload() 才能在您的 url 中生效。
-
@ImmanuelKirubaharanS 尝试添加:$stateParams.reviewId = reviewvm.review.id; $state.reload();并且状态已重新加载,但 reviewId 为空。而且我想知道我是否可以在不重新加载状态的情况下以某种方式做到这一点。
标签: javascript angularjs angular-ui-router