open ng2 modal create bootstrap twitter-bootstrap angularjs modal-dialog

twitter bootstrap - ng2 - Diálogo modal de AngularJs en una parte de la página



ng2 bootstrap modal angular 5 (1)

Normalmente no es posible ya que todos los modales creados por AngularJs UI Bootstrap se pasan al cuerpo html. Dicho esto, siempre hay una manera :)

Descargo de responsabilidad : el siguiente es un truco y te recomendaré que crees tu propia directiva.

El componente modal expone dos promesas, una llamada resultado y la otra llamada abierta . En nuestro caso, utilizaremos el segundo para saber cuándo el modal está abierto y es visible. Desde allí podemos agregar el modal a otro elemento div de la siguiente manera:

var modalInstance = $modal.open({ windowClass : ''uniqueClassName'', //use to easily find the dom element templateUrl: ''modal.html'', controller: ChatModalController }); modalInstance.opened.then(function(){ $timeout(function(){ var modalDom = document.querySelector(''.uniqueClassName''); // The modal var modalBackDom = document.querySelector(''.modal-backdrop''); //The backdrop var chatDom = document.querySelector(''#chat''); chatDom.appendChild(modalDom); //Move modal & backdrop inside chat div chatDom.appendChild(modalBackDom); }); })

Para acomodar el nuevo escenario también deberíamos agregar / modificar algunas clases de CSS así:

#chat {position:relative;} #chat .modal, #chat .modal-backdrop{ position : absolute; }

Finalmente puedes ver un Plunker que funciona aquí .

Estoy usando un Modal de AngularJs UI Bootstrap explicado desde aquí

Quiero que el modal se muestre en una parte particular de la página (en un DIV específico, por ejemplo), solo ennegreciendo su contenedor y no la pantalla completa.

Aquí está el ejemplo, quiero que el modal se muestre solo en la parte azul claro ( id="chat" ) http://plnkr.co/edit/tEnmm7RDOiB6sag4ailo?p=preview