无法在行单击时传递数据

时间:2016-05-04 21:52:47

标签: javascript html angularjs

我在下面的代码中做错了什么。我没有得到任何错误,我也没有得到结果。   1.警报出现了。   2.我尝试对ceid值进行硬化,但仍未将该值传递给EVerifyModuleI9Service内的函数。   例如:我硬编码EVerifyModuleI9Service.getEmployeeInformation(53)但总是将0发送到该函数。

注意:LoadViewSelected用于加载视图,它将视图的url和js文件作为参数。

HTML(ListEverify.cshtml):

<div ng-app="EVerifyModule">
  <div class="row" ng-controller="EVerifyController as ECtrl">
    <table class="table table-bordered table-striped table-hover table-condensed">
      <thead>
        <tr>
          <th ng-click="sortdata('name')"> Employee Name
            <span class="glyphicon sort-icon"></span>
          </th>
          <th ng-click="sortdata('dateHire')">
            Hire Date
            <span class="glyphicon sort-icon"></span>
          </th>
          <th ng-click="sortdata('phoneNumber')">
            Phone Number
            <span class="glyphicon sort-icon"></span>
          </th>
          <th>
            E-Verify
            <span class="glyphicon sort-icon"></span>
          </th>
        </tr>
      </thead>
      <tbody>
        <tr ng-repeat="emp in Employees" ng-click="storeIds(emp)">
          <td>{{emp.name}}</td>
          <td>{{emp.dateHire | date:'MM-dd-yyyy'}}</td>
          <td>{{emp.phoneNumber}}</td>
          <td><a class="btn-sm btn-primary pull-right" href="javascript:void(0)" onclick="LoadViewSelected('/EVerify/EVerify/EVerifySubmit', 'EVerifyModule');">E-Verify</a></td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

EVerifyModel.js

var EVerifyModule = angular.module('EVerifyModule', ['angularFileUpload', 'ui.bootstrap', 'angularUtils.directives.dirPagination']);
EVerifyModule.factory('EVerifyModuleService', ['$http', '$window', function($http, $window) {
  return {
    GetEmployeeList: function(companyId) {
      return $http({
        url: '/api/EVerify/GetEmployeeList',
        method: 'POST',
        data: companyId
      });
    }
  };
}]);

EVerifyModule.factory('EVerifyModuleI9Service', ['$http', function($http) {

  return {
    getEmployeeInformation: function(id) {
      return $http({
        url: '/api/EVerify/GetEmployeeInfo',
        method: 'GET',
        params: {
          Id: id
        }
        // data: id
      });
    }
  };

}]);

EVerifyModule.service('DataToPersistService', function(param) {
  ceId = param;
});

EVerifyModule.controller('EVerifyController', ['$scope', '$http', '$compile', 'EVerifyModuleService', '$timeout', function($scope, $http, $compile, EVerifyModuleService, $timeout) {
  $scope.storeIds = function(emp) {
    alert(emp.id);
    alert(emp.name);
    DataToPersistService.function(emp.id);
  }

  EVerifyModuleService.GetEmployeeList(61).then(function(response) {
    $scope.Employees = response.data.Employees;
  });
}]);

EVerifyModule.controller('EVerifyI9Controller', ['$scope', '$http', '$compile', 'EVerifyModuleI9Service', function($scope, $http, $compile, EVerifyModuleI9Service) {
  EVerifyModuleI9Service.getEmployeeInformation(ceId).then(function(response) {
    if (response != null) {

      $scope.employeeInfo = response.data.EmployeeInfo;
    }
  });
}]);

1 个答案:

答案 0 :(得分:0)

<a class="btn-sm btn-primary pull-right" href="javascript:void(0)"  onclick="LoadViewSelected('/EVerify/EVerify/EVerifySubmit', 'EVerifyModule');">E-Verify</a>

为了简单起见,用按钮替换锚标签,然后用ng-click事件替换onclick,并确保你将LoadViewSelected函数附加到ur $ scope。