我正在使用角度ngRoute并且有两页index.html#/pageone
和index.html#/pagetwo
。在pageone
中,有一个文件夹列表,它们是pagetwo
的入口。通过单击其中一个文件夹pageone
将文件夹名称作为参数传递给pagetwo
,pagetwo
上有一个数据表,等待来自pageone的参数显示相关内容。
我所做的是获取pagetwo
控制器中的参数并将查询参数附加到url,这样我在刷新pagetwo
时仍然可以获取参数。但似乎这不是一种正确的方法。如果我使用pageone
从pagetwo
重定向到name=1
,然后点击浏览器的后退按钮,网址将从index.html#/pagetwo?name=1
更改为index.html#/pagetwo
,无法获取参数一旦我现在刷新页面。在这种情况下,是否存储了从pageone
传递的参数的任何解决方案?
.when('/pageone', {
templateUrl: 'pageone.html',
controller: 'pageoneController',
reloadOnSearch: false
})
.when('/pagetwo', {
templateUrl: 'pagetwo.html',
controller: 'pagetwoController',
reloadOnSearch: false
})
pagetwoController:
if(direct from pageone) {
$scope.name = someService.getName()
$location.search('name', $scope.name)
} else {
//if reload page
$scope.name = $location.search().name
}
答案 0 :(得分:0)
您可以使用:
在路线中定义参数,例如:id
创建一个名为id
的参数变量
.when('/pageone', {
templateUrl: 'pageone.html',
controller: 'pageoneController',
reloadOnSearch: false
})
.when('/pagetwo/:id', { //add the id param here.
templateUrl: 'pagetwo.html',
controller: 'pagetwoController',
reloadOnSearch: false
})
你的pagetwo网址就像:/pagetwo/1
在您pagetwo
的控制器中,您可以通过$routeParams
变量获取参数。
有关详细信息,请参阅this