如何使用 Angular 的 ngRoute 存储参数?
How do I store parameters with Angular's ngRoute?
我正在使用 angular ngRoute 并且有两个页面 index.html#/pageone
和 index.html#/pagetwo
。在pageone
中有一个文件夹列表,是pagetwo
的入口。通过点击其中一个文件夹,pageone
将文件夹名称作为参数传递给pagetwo
,pagetwo
上有一个数据表,等待pageone的参数显示相关内容。
我所做的是在 pagetwo
的控制器中获取参数并将查询参数附加到 url 以便我在刷新 pagetwo
时仍然可以获取参数。但这似乎不是正确的方法。如果我用name=1
从pageone
重定向到pagetwo
,然后点击浏览器的后退按钮,url会从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
})
pagetwo控制器:
if(direct from pageone) {
$scope.name = someService.getName()
$location.search('name', $scope.name)
} else {
//if reload page
$scope.name = $location.search().name
}
您可以使用 :
在路由中定义参数,例如 :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 的 url 会是这样的:/pagetwo/1
在 pagetwo
上的控制器中,您可以通过 $routeParams
变量获取参数。
有关详细信息,请参阅 this
我正在使用 angular ngRoute 并且有两个页面 index.html#/pageone
和 index.html#/pagetwo
。在pageone
中有一个文件夹列表,是pagetwo
的入口。通过点击其中一个文件夹,pageone
将文件夹名称作为参数传递给pagetwo
,pagetwo
上有一个数据表,等待pageone的参数显示相关内容。
我所做的是在 pagetwo
的控制器中获取参数并将查询参数附加到 url 以便我在刷新 pagetwo
时仍然可以获取参数。但这似乎不是正确的方法。如果我用name=1
从pageone
重定向到pagetwo
,然后点击浏览器的后退按钮,url会从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
})
pagetwo控制器:
if(direct from pageone) {
$scope.name = someService.getName()
$location.search('name', $scope.name)
} else {
//if reload page
$scope.name = $location.search().name
}
您可以使用 :
在路由中定义参数,例如 :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 的 url 会是这样的:/pagetwo/1
在 pagetwo
上的控制器中,您可以通过 $routeParams
变量获取参数。
有关详细信息,请参阅 this