2016-03-07 27 views
10

Sto cercando di ottenere un popover Bootstrap 3 per visualizzare un modello interpolato Angular 2. È possibile? Ecco quello che ho finora:Come utilizzare Bootstrap Popover con Angular2

$('.ba-header--user-menu').popover({ 
     placement: 'bottom', 
     toggle: 'popover', 
     trigger: 'focus', 
     html: true, 
     content: '{{user.email}}' 
    }); 

Il che mi dà questo:

enter image description here

+0

Puoi aggiungere il plunkr? Bootstrap e file JS esterni hanno problemi noti qui. Anche io sto affrontando problemi simili con Bootstrap e commutazioni dati. Alcuni funzionano senza scatola e altri no. – Gary

+0

Molto meglio sbarazzarsi di 'bootstrap.js' e usare' angular-ui-bootstrap', ma se si vuole continuare è necessario inizializzare i plugin jquery nelle direttive per assicurare che l'elemento esista quando viene eseguito il codice. Per quanto riguarda la compilazione di parentesi 'interpolation' che non accadrà ... ottenere il contenuto nella direttiva – charlietfl

+1

Sono sotto l'impressione angular-ui-bootstrap per angular2 è chiamato https://github.com/ng-bootstrap/core e supporta solo 3 componenti atm. Sfortunatamente, il popover non sembra essere uno di questi –

risposta

1

Sì questo è possibile, ma non si può chiamare simbolo interpoleted nel plugin jQuery il modo in cui si sta facendo. devi assegnare la tua email dinamica direttamente usando this in questo modo.

ngOnInit(){ 
    $('#abc').popover({ 
     placement: 'bottom', 
     toggle: 'popover', 
     title: 'khcksahkdfs' 
     html: true, 
     content: this.name 
    }); 
} 

<a id="abc">Toggle popover</a> 

lavoro Demo here

+1

Ma in questo caso la direttiva Angular2 (clic) non funzionerà all'interno di popover html, perché jquery è clone popover htmland quindi lo mostra sul browser. –

+0

Per quelli che usano il webpack, aggiungi const $ = require ('jquery'); usare la scorciatoia jQuery $. – binjiezhao

+0

come hai importato popover? ng non sta compilando .. nvm, mi manca di fare 'npm install --save @ types/bootstrap' –

11

JQuery e angolare non giocare molto bene insieme. Installare ng2-popover:

npm i ng2-popover 

e usarlo in questo modo:

<span popover="content to be shown in the popover"> 
    element on which this popover is applied. 
</span> 
+0

c'è un sacco di problemi. Prima di auto-promozione, correggili https://github.com/pleerock/ng2-popover/issues – Toolkit

+4

la sua non promozione, è un aiuto. È un componente semplice che mostra come funziona Popover, non c'è nulla che io possa promuovere. Hai ottenuto questo aiuto gratuitamente, se non ti piace qualcosa invia un PR, contribuisci o crea un fork e mantieni la tua versione – pleerock

+1

@pleerock I'm getting Error: (SystemJS) ctorParameters.map non è una funzione. sebbene la mia versione angolare sia 2.1.2. Potrebbe per favore suggerire cosa potrebbe causare questo? –

2

Si può anche provare una libreria ho pubblicato ng2-pop-over (da non confondere con NG2-popover di cui sopra). È compatto e dovrai aggiungere i tuoi stili ma ha quello che serve per risolvere il tuo problema senza jQuery.

+0

Ricevo esattamente lo stesso errore - "ctorParameters.map non è una funzione" quando provo ng2-popover e ng2-pop-over. Forse qualcosa che sto sbagliando. Ho controllato e sembra che ci sia qualcosa sulla versione Angular. Ho persino eseguito l'aggiornamento di npm. Niente di miglioramento. – peterb

+0

Puoi mettere il tuo esempio di lavoro in un jsfiddle? – Meir

+0

È possibile visualizzare il ng2-pop-over in modo programmatico? Non vedo alcuna documentazione su questo. –

Problemi correlati