Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AngularJS ui modal passing data

This is ui-select where user can select an options:

<ui-select ng-model="state.selected" ng-change="openModal(state.selected,orders.order_id)" ng-if="orders.state == 'Paid'" theme="selectize" ng-disabled="disabled" style="width: 300px;"> .....

Whenever there is changes, it trigger modal from bootstrap

$scope.openModal = function(name,oid){
    $scope.modalInstance = $modal.open({
        templateUrl: 'reservationModal.html',
        scope:$scope,
        name: function(){
            return name;
        }
    });
}

$scope.cancel = function(){
    $scope.modalInstance.dismiss();
}

$scope.confirmChg = function(){
    console.log('ok...');
}

The template is as follow:

<script type="text/ng-template" id="reservationModal.html">
    <div class="modal-header">
        <h3 class="modal-title">Confirmation</h3>
        <!--<button class="btn btn-warning" ng-click="close()">X</button>-->
    </div>
    <div class="modal-body">
        Confirm to change status to {{name}} ?

    </div>
    <div class="modal-footer">
        <button class="btn btn-danger" type="button" ng-click="confirmChg(status_oid,status)">Yes</button>
        <button class="btn btn-warning" type="button" ng-click="cancel()" data-dismiss="modal">No</button>
    </div>
</script>

The problem is , the {{name}} in template is not displaying. How can I pass variable from open modal function?

like image 862
d3bug3r Avatar asked Apr 08 '26 21:04

d3bug3r


1 Answers

You need to set the name on the scope, just add the line:

$scope.name = name;

before calling $scope.open. So the openModal function would look like:

$scope.openModal = function(name,oid){
    $scope.name = name;
    $scope.modalInstance = $modal.open({
        templateUrl: 'reservationModal.html',
        scope:$scope,
        name: function(){
            return name;
        }
    });
}
like image 125
Fridjon Gudjohnsen Avatar answered Apr 10 '26 12:04

Fridjon Gudjohnsen



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!