2016-11-15 3 views
0

Мне нужно несколько модальных диалогов с очень похожими формами, поэтому решили разложить их на компонент mycomponent и создать ionicModal, который содержит его. Все идет хорошо, и mycomponent запускается, когда требуется, но я не могу понять, как получить кнопку изнутри mycomponent, чтобы закрыть модальный диалог mycomponent.Ионный компонент модального диалога для закрытия себя

Каков правильный способ сделать это? Учебники для ionicModal, похоже, используют глобальную область hide, которая будет бесполезной, когда я добавляю больше модалов и компонентов, подобных этой.

app.component('mycomponent',{ 
    templateUrl: 'js/mycomponent.html', 
    controller: function() { 
      //various stuff 
    }  
}); 

app.controller("mycontroller",function($scope,$ionicModal){ 
    $scope.mymodal = $ionicModal.fromTemplate(
     '<mycomponent options="various stuff"></mycomponent>', { 
    scope: $scope 
    }); 
}); 

mycomponent.html:

<ion-modal-view> 
    <ion-header-bar class=bar-positive> 
     <button class="button" ng-click="hide()">Done</button> 
    </ion-header-bar> 
    <ion-content> 
      <!-- various stuff --> 
    </ion-content> 
</ion-modal-view> 

index.html

<button class="button" ng-click="mymodal.show()">Edit</button> 

ответ

0

Вы можете добавить идентификатор к вашему модальному и создать функцию, которая изменяет функцию Ей лжи. Затем в модальном месте ng-show="modals[10]"

<button class="button" ng-click="closeModal(10)">X</button> 

Сценарий:

var modals = []; 

function closeModal(id){ 
    modals[id] = false; 
} 

В контроллере добавить параметр ID:

app.controller("mycontroller",function($scope,$ionicModal){ 
    $scope.mymodal = $ionicModal.fromTemplate(
     '<mycomponent options="various stuff" modalId="10"></mycomponent>', { 
      scope: $scope 
     } 
    ); 
}); 

И читать его из mycomponent.html как вы читаете параметры параметров

<ion-modal-view ng-show="modals[id]"> 

Пошлите Directives too.

+0

Я не совсем понимаю это. Где идет 'ng-show'? В массиве 'modals' содержатся модальные объекты? –

+0

Я отредактировал ответ. Попробуйте также директивы, это может быть полезно для того, что вам нужно. – driconmax

+0

Я пробовал это. Он работает для отображения и скрытия модального один раз, но затем он не будет отображаться снова. Я не уверен, что установка 'ng-show' на' false' эквивалентна вызову 'hide()' на 'ionicModal'? –