如何将数据从一个视图传递到另一个视图

时间:2015-05-25 07:01:10

标签: asp.net-mvc angularjs

我有一张桌子,我有一个详细的超链接点击其中我在其他div的同一页面上显示一个新表。详细信息Hyperlink有3个输入参数,根据这些参数触发服务方法,我获取数据中的数据。现在我有这个任务在新页面上显示第二个网格。我不知道该怎么做。 请帮忙。

<table class="table table-bordered table-condensed table-hover  ">
                    <thead>
                        <tr style="white-space: nowrap;">
                            <th>Date</th>
                            <th>Organization No</th>
                            <th>Contract No</th>
                            <th>Company Name</th>
                            <th>Plan No</th>
                            <th>Status</th>
                            <th>View Detail</th>
                        </tr>
                    </thead>
                    <tr ng-repeat="mas in vm | startFrom:currentPage*pageSize | limitTo:pageSize"  data-ng-class="{active1:$index==selectedRow}" data-ng-click="rowHighilited($index)">
                    <td>{{mas.startDate | amDateFormat:&#39;YYYY-MM-DD&#39;}} </td>
                        <td>{{mas.organizationNumber}}</td>
                        <td>{{mas.contractNumber}} </td>
                        <td>{{mas.name}}</td>
                        <td>{{mas.planNumber}} </td>
                        <td>{{mas.description}} </td>
                        <td><span><a href="#" ng-click="getErrorDetailBySearch(mas.productAccountOid,mas.planNumber,mas.migrationRunID)">Details</a></span></td>
                    </tr>
                </table>

// getErrorDetailBySearch(mas.productAccountOid,mas.planNumber,mas.migrationRunID)它调用函数将数据绑定到下面的div .//

<div ng-show="IsVisible">
            <div ng-show="vm1.length &gt; 0 &amp;&amp; !loading">
                <h2>Error Detail</h2>
                <br />

                <div class="row">
                    <div class="col-sm-12 col-md-12 col-lg-12 table-responsive">
                        <table class="table table-bordered table-condensed table-hover  table-striped">
                            <thead>
                                <tr style="white-space: nowrap;">
                                    <th>Contract Number</th>
                                    <th>Plan Number</th>
                                    <th>Business Error Message</th>
                                    <th>System Error Details</th>


                                </tr>
                            </thead>
                            <tr ng-repeat="mas in vm1">
                                <td>{{mas.contractNumber}} </td>
                                <td>{{mas.planNumber}} </td>
                                <td>{{mas.businessErrorMsg }} </td>
                                <td>{{mas.systemErrorMsg}} </td>

                            </tr>
                        </table>
                    </div>
                </div>

我可以调用一个名为ErrorDeatils的新页面,但我不知道如何通过页面传递数据。 这是为第一页编写的控制器

$scope.getErrorDetailBySearch = function (productAccountOid, planNr, migrationrunid) {

            var path = "/Utilities/Error";
            $location.path(path.replace(/\s+/g, ""));

        };


var onSuccess = function (response) {
            $scope.vm1 = response;
            if ($scope.vm1 < 1) {
                messageService.noDataFound();
            }
        }
$scope.getErrorDetailBySearch = function (productAccountOid, planNr,migrationrunid, skipFormValidate) {
            if (skipFormValidate || b360FormsService.validateForm($scope.ViewErrorDetail)) {
                errorService.globalproductAccountOid = productAccountOid;
                errorService.globalplanNr = planNr;
                errorService.globalmigrationrunid = migrationrunid;
                $scope.loading = true;
                repositoryService.getErrorDetailBySearch(productAccountOid, planNr, migrationrunid).$promise.then(onSuccess, onError).finally(function () {
                    $scope.loading = false;
                });

            }
        }

1 个答案:

答案 0 :(得分:0)

您好,您可以将数据作为查询参数或路由参数传递

  1. 查询参数
  2. 假设您有路径“/ errorDetails”并且您希望传递值为“10”的“param”,那么您可以使用$ location.path(),如下所示:

    $location.path("/errorDetails").search({param: 10});
    

    您可以在结果页面的控制器上访问“param”的值:

    $location.search().param;
    
    1. 路线参数

      对于使用路线参数,您需要更改路线配置,路径将如下:

       $routeProvider
          .when('/errorDetails/:param', {
              title: 'Error Details',
              templateUrl: 'path/to/errorDetails.html'
          });
      
    2. 现在您可以使用$ location.path发送param,如下所示:

          $location.path("/errorDetails/"+param);
      

      您可以在结果页面的控制器上访问路由参数,如下所示:

         $routeParams.param