Ho passato un po 'di tempo a giocare con il popup Bootstrap di AngularJS, e per le intenzioni funziona benissimo, ma quello che mi piacerebbe fare è legarlo, ed è lo script dipendente per lo stesso controller, cosa non posso funzionare è il pulsante di chiusura ora però. Se creo un controller NEW e inietto $ modalInstance funziona alla grande e posso collegare il pulsante di chiusura senza alcun problema, ma non voglio un secondo controller, sembra essere una complicazione eccessiva: voglio tutta la logica del mio controller nel formController davvero.
Perché in realtà vorrei due controller? Passare lo spazio tra due controller mi sembra eccessivo, e più grande diventa il progetto più diventa maneggevole. Sto cercando di semplificare eccessivamente questo inutilmente? :)
Lo script:
(function(){
var app = angular.module('ngModalDemo', ['ui.bootstrap'])
.controller('formController', function($scope, $modal){
$scope.openModal = function() {
var modalInstance = $modal.open({
templateUrl: 'SomeModal.html',
controller: 'formController'
});
};
$scope.closeModal = function() {
// Code needed here :)
};
})
})();
Il corpo HTML (scusate il codice HTML nello script ai fini della demo):
<div ng-controller="formController">
<button class="btn btn-default" ng-click="openModal()">Let's do some stuff!</button>
<script type="text/ng-template" id="SomeModal.html">
<div class="modal-header">Do some stuff in this modal y'all.</div>
<div class="modal-footer">
<button class="btn btn-info" ng-click="closeModal()">Close</button>
</div>
</script>
</div>
La risposta sulla base di Kaspars' ingresso :)
(function(){
var app = angular.module('ngModalDemo', ['ui.bootstrap'])
.controller('formController', function($scope, $modal, $log){
$scope.openModal = function() {
var modalInstance = $modal.open({
templateUrl: 'SomeModal.html',
controller: [
'$scope', '$modalInstance', function($scope, $modalInstance){
$scope.closeModal = function() {
$modalInstance.close();
};
}
]
});
};
})
})();
un controller modale separata grandi opere, se il modal sta per essere condivisa da molti controllori – gaurav5430