2015-10-30 2 views
3

Это ui-select, где пользователь может выбрать параметры:AngularJS Ui модальные передачи данных

<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;"> ..... 

Всякий раз, когда есть изменения, то инициируют модальность от начальной загрузки

$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...'); 
} 

шаблоне выглядит следующим образом:

<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> 

Проблема в том, что {{name}} в шаблоне не d играет. Как передать переменную из открытой модальной функции?

+0

Я бы сказал, что обычно мы передавать данные в модальный контроллер с помощью метода Resolve, а не передать $ рамку для модального: HTTP: //stackoverflow.com/questions/18576454/ pass-parameter-to-modal # answer-22132677 –

ответ

4

Вы должны установить имя рамки, просто добавьте строку:

$scope.name = name; 

перед вызовом $ scope.open. Так openModal функция будет выглядеть следующим образом:

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

где я его устанавливал? внутри name функция? – d3bug3r

+0

Только в начале openModal. Я только уточнил ответ. –

+0

Спасибо, это работает – d3bug3r

Смежные вопросы