uib modal example bootstrap angularjs twitter-bootstrap

angularjs - example - Angular Bootstrap Modal: Proveedor desconocido: $ modalInstanceProvider



datepicker angularjs (2)

El problema era que especificabas un controlador en 2 lugares: al abrir un modal y dentro de una plantilla, esto no es necesario. Elimine ng-controller de una plantilla y todo funcionará como se espera: http://plnkr.co/edit/khySg1gJjqz1Qv4g4cS5?p=preview

Estoy tratando de usar la directiva modal Angular Bootstrap ( http://angular-ui.github.io/bootstrap/ ) de la siguiente manera, en mi controlador para abrir el modal:

function customerSearch() { var modalInstance = $modal.open({ templateUrl: ''app/customer/customers.modal.html'', controller: ''customers.modal'' }); modalInstance.result.then(function(selectedCustomer) { console.log(selectedCustomer); }); }

En el controlador modal:

var controllerId = ''customers.modal''; angular.module(''app'').controller(controllerId, [''$modalInstance'', customersModal]); function customersModal($modalInstance) { // Modal controller stuff }

Pero cuando lo hago, aparece el siguiente error:

Unknown provider: $modalInstanceProvider <- $modalInstance

Si $modalInstance , funciona, pero obviamente no tengo referencia al modal en el controlador de llamadas.

Editar

No sé si vale la pena señalarlo, pero estoy usando la sintaxis de Controller As:

<div class="container-fluid" data-ng-controller="customers.modal as vm">

Dependencias de aplicaciones:

var app = angular.module(''app'', [ // Angular modules ''ngAnimate'', // animations ''ngRoute'', // routing ''ngSanitize'', // sanitizes html bindings (ex: sidebar.js) // Custom modules ''common'', // common functions, logger, spinner ''common.bootstrap'', // bootstrap dialog wrapper functions // 3rd Party Modules ''ui.bootstrap'', // ui-bootstrap (ex: carousel, pagination, dialog) ''breeze.directives'', // breeze validation directive (zValidate) ]);

Creé un plunker que muestra el problema aquí: http://plnkr.co/edit/u8MSSegOnUQgsA36SMhg?p=preview


prueba esta sintaxis primero

angular.module(''app'').controller(''customers.modal'', [''$modalInstance'', function($modalInstance){ // Modal controller stuff }]);

Creo que se estropea si usas la notación de corchetes y declaras el controlador afuera.

$ modalInstance es la instancia modal que creas allí

var modalInstance = $modal.open({ templateUrl: ''app/customer/customers.modal.html'', controller: ''customers.modal'' });

es realmente el mismo objeto. Se vuelve a inyectar en el controlador pero no es un servicio / fábrica. Entonces no tiene un Proveedor.

Esta es una parte difícil en la lib. No dude en preguntar a los autores originales de ui-bootstrap. Han sido útiles para explicar eso.