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

访问数据