angularJS 在控制器中设置路由参数
angularJS set route params in controller
我有一个应用程序可以创建多个带有随机调查 ID 的调查。由于 ID 是在后端生成的,因此它们是在控制器中设置的。我阅读了相关文档,但是我不太了解如何设置路由参数以始终到达页面 /survey/:surveryID。
到目前为止,这是我的代码:
应用配置:
...
.when('/survey/:surveyId', {
templateUrl: 'views/survey.html',
controller: 'SurveyCtrl',
controllerAs: 'survey'
})
控制器:
function SurveyCtrl($scope, RequestService, _, $location, $routeParams) {
$scope.go = function () {
$location.path('/#/survey/' + Math.random());
};
}
用 link 查看 /survey/:surveyId:
<div>
<md-button ng-click="go()">Enter Survey</md-button>
</div>
我知道这不是正确的方法,甚至不起作用。有人能告诉我如何动态创建这些参数并在控制器中设置它们,以便我可以使用按钮访问 link 然后在单击时到达 survey/:surveyId 页面吗?
为了完成您的工作,
$location.path('/survey/' + Math.random());
您也可以使用搜索方法传递参数,
$location.path('/myURL/').search({param: 'value'});
$location 方法是可链接的。
这个产品:
/myURL/?param=value
您也可以为此使用 updateParams
方法:
$route.updateParams({'surveryID': Math.random()});
并使用 $routeParams.surveryID
访问数据
我有一个应用程序可以创建多个带有随机调查 ID 的调查。由于 ID 是在后端生成的,因此它们是在控制器中设置的。我阅读了相关文档,但是我不太了解如何设置路由参数以始终到达页面 /survey/:surveryID。
到目前为止,这是我的代码:
应用配置:
...
.when('/survey/:surveyId', {
templateUrl: 'views/survey.html',
controller: 'SurveyCtrl',
controllerAs: 'survey'
})
控制器:
function SurveyCtrl($scope, RequestService, _, $location, $routeParams) {
$scope.go = function () {
$location.path('/#/survey/' + Math.random());
};
}
用 link 查看 /survey/:surveyId:
<div>
<md-button ng-click="go()">Enter Survey</md-button>
</div>
我知道这不是正确的方法,甚至不起作用。有人能告诉我如何动态创建这些参数并在控制器中设置它们,以便我可以使用按钮访问 link 然后在单击时到达 survey/:surveyId 页面吗?
为了完成您的工作,
$location.path('/survey/' + Math.random());
您也可以使用搜索方法传递参数,
$location.path('/myURL/').search({param: 'value'});
$location 方法是可链接的。
这个产品:
/myURL/?param=value
您也可以为此使用 updateParams
方法:
$route.updateParams({'surveryID': Math.random()});
并使用 $routeParams.surveryID