Search code examples
angularjsangularjs-ng-click

Angularjs passing id into modal function()


I am using angularjs and spring mvc for my application. At first I am displaying all the placements with one button Placed Candidates. I am doing ng-repeat for displaying all the placements.

Here is my html.

    <div class="row" data-ng-repeat="placement in placements">
      <div class="col-xs-12 col-sm-12 col-md-12">
        <h5>{{placement.companyName}}</h5>
      </div>
      <div class="col-xs-12 col-sm-6 col-md-3">
        <h6>{{placement.placementDate | date:'dd MMM yyyy'}}</h6>
        Company Target (appox):10 Achieved: 
      </div>
      <a href="javascript:void(0);" data-ng-
    click="placedcandidatespopup(placement.placementId);">//here i can
    get particular placementId but how to pass this id to 
    savePlacementStudents() method in controller.js???//
    PlacedCandidates
      </a>
    </div>

I am calling one modal popup function. Here is controller.js

    $scope.placedcandidatespopup = function()
    {
    AdminUsersService.getAllUsers().then(function(response)
    {
        $scope.allusers=response.data;
        console.log($scope.allusers);
    })
    $(".placedcandidates").modal("show");
    }

I am calling modal by name "placedcandidates".

Here is the modal

    <div class="modal right fade placedcandidates" id="myModal1"
    tabindex="-1" role="dialog" aria-labelledby="myModalLabel2">
    <div class="modal-dialog" role="document">
    <div class="modal-content">
    <div class="modal-body">
    <div class="row">
    <div class="col-xs-12 col-sm-6 col-md-6" data-ng-
    repeat="student in allusers">
    <input id="{{student.studentId}}" type="checkbox" value="
    {{student.studentId}}" data-ng-
    checked="selection.indexOf(student.studentId) >-1" 
    data-ng-click="toggleSelection(student.studentId)"/> 
    <label for="{{student.studentId}}"></label>
    {{student.firstName}}
    </div>
    </div>
    </div>
    <div class="modal-footer" style="position: fixed;">
    <input type="button" value="Submit" class="btn" data-ng-
    click="savePlacementStudents()">
    </div>
    </div>
    </div>
    </div>

After clicking on button popup modal will display with all Students with checkboxes placed beside them.Now I am able to save studentId into database.But I am not able to pass placementId for saving.

Here is my savePlacementStudents method in controller.js.

    $scope.selectedStudents = {};
    $scope.savePlacementStudents = function(selectedStudents)
    {
    selectedStudents.selectedList = $scope.selection;
    AdminPlacementService.savePlacementStudents(selectedStudents).then
    (function(response)
    {
                if(response.data=="success"){       
                $window.scrollTo(0,0);
                $scope.selectedStudents = {};
                $scope.getplacementdetails($scope.currentPageIndex);
                $scope.successmessage="Student Selection Saved!;
                $timeout(function() {
                    $scope.successmessage="";
                    $scope.closeplacedcandidatespopup();
                    }, 1500);
                        }
                });
    }

Can anyone tell how can I pass respective placementId to this saveStudents method() so that I can set that placementId for those students selected.


Solution

  • Here is the solution.

    The placementId passed to function placedcandidatespopup can be saved as follows in function placedcandidatespopup

    $scope.selectedPlacementId = placementId;
    

    Now the same $scope will have access in Popup also as it is using same controller.js. And now you can use this $scope.selectedPlacementId anywhere in controller.js So you don't need to pass placementId...!!

    Hope that would help you..!!