将查询参数传递给控制器​​的正确方法是什么?

时间:2015-09-03 16:26:31

标签: angularjs

我想将一些查询参数从html传递给控制器​​。它没有像我想象的那样工作。这是我的代码。基本上,我有3个参数。 imei是路径变量,startdate和enddate是 查询参数。

HTML

  <td sortable="'imei'" data-title="'IMEI'">
     <a ng-href="#/{{row.imei}}/graph?startDate={{main.startDate}}&
       endDate={{main.endDate}}">{{row.imei}}
     </a>
  </td>

RouteProvider代码

function MainConfig($routeProvider) {
  $routeProvider.when('/main', {
      templateUrl: 'main/main.html',
      controller: 'MainCtrl',
      controllerAs: 'main'
    })
    .when('/:imei/graph?startDate&endDate', {
      templateUrl: 'graph/graph.html',
      controller: 'GraphCtrl',
      controllerAs: 'graph'
    });
}

控制器代码

function GraphCtrl(Graph, $filter, RcTableParams, moment, $routeParams) {
  var graph = this;
  graph.imei = $routeParams.imei;
  graph.startDate = $routeParams.startDate;
  graph.endDate = $routeParams.endDate;
  . 
  .
}

我知道路径参数有效。一旦我添加了查询参数,代码就停止了工作。我是否正确指定了路线信息?谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

您可以使用$ location服务

function GraphCtrl(Graph, $filter, RcTableParams, moment, $routeParams,$location) {
  var graph = this;
  graph.imei = $routeParams.imei;
  graph.startDate = $location.search().startDate;
  graph.endDate = $location.search().endDate;

  . 
  .
}