ng-template access controller variables

Pedro Silva4
Kilo Guru

on my HTML I have:

<a ng-click="supportFeedback(member)"/>

on my Client Script:

c.supportFeedback = function(m) {

  console.log(m.sys_id); //this prints the sys_id correctly

  $scope.m=m;

  c.modalInstance = $uibModal.open({ // this opens the window corectly

      templateUrl: 'modalTemplate',

      scope: $scope

  });

}

my Modal Template is:

<script>

  <div class="panel panel-default">

      <div class="panel-heading">

          <h4 class="panel-title">Modal Window {{$parent.sys_id}}</h4>     --> PRINT sys_id here?

      </div>

  <div class="panel-body wrapper-xl">

  </div>

  <div class="panel-footer text-right">

    <button class="btn btn-primary" ng-click="c.closeModal()">${Close Modal}</button>

  </div>

</div>

</script>

How can I have access to "member" on my Modal Template?

The variable is passed on correctly to the controller, just can't access it on the modal template

Thanks,

Pedro

1 ACCEPTED SOLUTION

Pedro Silva4
Kilo Guru

ok got it.



Here goes the entire code:




HTML:




<h1 class="font-thin m-t-none">Team Members</h1>




<div class="row">


  <a class="col-sm-6 col-md-4 ng-scope" ng-repeat="member in data.members">


  <div class="panel panel-default" ng-click="c.supportFeedback(member)">



      <div class="overflow-100">


          <img src="{{member.image}}" class="m-r-sm m-b-sm item-image pull-left ng-scope"/>


<span>{{member.name}}</span>


          <p>Member of the team since {{member.since}}</p>


      </div>


      <div>


          <span>click here to give {{member.name}} feedback</span>


      </div>


  </div>


</a>



</div>



<!--TEMPLATE-->


<script>


<div class="panel panel-default">


<div class="panel-heading">


<h4 class="panel-title">Modal Window {{m.name}}</h4>


  </div>


<div class="panel-body wrapper-xl">



  </div>


<div class="panel-footer text-right">


<button class="btn btn-primary" ng-click="c.closeModal()">${Close Modal}</button>


  </div>


  </div>


</script>






Controller:


function(spModal, $uibModal, $scope) {


  var c = this;




  c.supportFeedback = function(m) {


      console.log(m.sys_id);


      $scope.m=m;


      console.log($scope.m.name);


      c.modalInstance = $uibModal.open({


          templateUrl: 'modalTemplate',


          scope: $scope


//shared: m


      });


  }


c.closeModal = function() {


  c.modalInstance.close();


}





}


}


View solution in original post

1 REPLY 1

Pedro Silva4
Kilo Guru

ok got it.



Here goes the entire code:




HTML:




<h1 class="font-thin m-t-none">Team Members</h1>




<div class="row">


  <a class="col-sm-6 col-md-4 ng-scope" ng-repeat="member in data.members">


  <div class="panel panel-default" ng-click="c.supportFeedback(member)">



      <div class="overflow-100">


          <img src="{{member.image}}" class="m-r-sm m-b-sm item-image pull-left ng-scope"/>


<span>{{member.name}}</span>


          <p>Member of the team since {{member.since}}</p>


      </div>


      <div>


          <span>click here to give {{member.name}} feedback</span>


      </div>


  </div>


</a>



</div>



<!--TEMPLATE-->


<script>


<div class="panel panel-default">


<div class="panel-heading">


<h4 class="panel-title">Modal Window {{m.name}}</h4>


  </div>


<div class="panel-body wrapper-xl">



  </div>


<div class="panel-footer text-right">


<button class="btn btn-primary" ng-click="c.closeModal()">${Close Modal}</button>


  </div>


  </div>


</script>






Controller:


function(spModal, $uibModal, $scope) {


  var c = this;




  c.supportFeedback = function(m) {


      console.log(m.sys_id);


      $scope.m=m;


      console.log($scope.m.name);


      c.modalInstance = $uibModal.open({


          templateUrl: 'modalTemplate',


          scope: $scope


//shared: m


      });


  }


c.closeModal = function() {


  c.modalInstance.close();


}





}


}