AngularJS UI-router将param从视图传递到状态解析

时间:2018-05-04 15:00:20

标签: php angularjs angular-ui-router

我正试图在params中传递ui-sref,然后将其访问state resolve

HTML查看

ui-sref="reservation({check_in: check_in, check_out: check_out})"

我正在尝试将params传递给ui-sref resolve

当我还没有使用controller时,这是resolve中的一些代码。

        $http.get('server/getFilteredRooms.php', {
            params: {
               check_in: data.check_in,
               check_out: data.check_out
            }
        }).then(function(res){

然后我尝试实现resolve,因为我想在呈现view之前等待数据获取。这样,我相信,由于来自undefined的{​​{1}},我不会遇到data尚未归还。

JS(app.js)

http function

我正在尝试访问我的.state("reservation", { url: "/reservation", templateUrl: "pages/reservation.html", controller: "ReservationController", resolve : { promiseObj : function($http){ return $http({ method: 'GET', url: 'server/getFilteredRooms.php', params: { check_in: check_in, check_out: check_in } }); } } }) 文件。

PHP

PHP

1 个答案:

答案 0 :(得分:3)

要在状态的解析中接收这些参数,首先,您需要声明状态配置中的那些参数。更改状态配置,并按如下方式引入params密钥:

.state("reservation", { 
  url: "/reservation",
  templateUrl: "pages/reservation.html",
  controller: "ReservationController",
  params: {
    check_in: null,
    check_out: null
  },
  resolve: ...

然后,按如下方式修改解析器:

promiseObj: function($http, $transition$){
    var params = $transition$.params();

    return $http({
      method: 'GET',
      url: 'server/getFilteredRooms.php',
      params: {
        check_in: params.check_in,
        check_out: params.check_in
      }
    });
 }

这样,您的解析器就知道它应该从URL中提取参数值并将其传递给HTTP调用。