【问题标题】:angularJS set route params in controllerangularJS在控制器中设置路由参数
【发布时间】:2017-09-16 00:47:13
【问题描述】:

我有一个应用程序,它使用随机调查 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());
  };
}

通过链接查看 /survey/:surveyId:

  <div>
    <md-button ng-click="go()">Enter Survey</md-button>
  </div>

我知道这不是正确的方法,甚至不起作用。有人可以告诉我如何动态创建这些参数并将它们设置在控制器中,以便我可以使用按钮访问链接,然后在单击时到达调查/:surveyId 页面?

【问题讨论】:

  • 你试过了吗? $location.path('/survey/' + Math.random());
  • @DilumN 谢谢,是的,这行得通!但是没有比这更好的方法在控制器中分配路由参数了吗?

标签: javascript html angularjs angular-material routeparams


【解决方案1】:

为了完成你的工作,

$location.path('/survey/' + Math.random());

您也可以使用搜索方法来传递参数,

$location.path('/myURL/').search({param: 'value'});

$location 方法是可链接的。

这个产品:

/myURL/?param=value

【讨论】:

    【解决方案2】:

    您也可以为此使用updateParams 方法:

    $route.updateParams({'surveryID': Math.random()});

    并使用$routeParams.surveryID访问数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      相关资源
      最近更新 更多