2013-02-16 17 views
16

Próbowałem użyć poppera bootstrap twitter na mojej stronie internetowej, gdy odkryłem, że nie działa, gdy jest umieszczony pod <div> z ng-repeat. Działa dobrze na górze w klasie div, która nie zawiera ng- czy ktoś wie dlaczego tak się stało i jak mogę obejść ten problem?twitter bootstrap popover nie działa z angularjs

<h3>Students Without Team</h3> 
<div class="accordion" id="studentNoTeamAccordion" > 
     <a href="#" class="btn btn-large btn-primary" rel="popover"data-html="true" 
      data-content=" 
       <form> 
        <textarea class='input-xlarge' rows='12' type='text'></textarea> 
        <P> 
         <input class='btn btn-primary' type='submit' value='Send' /> 
       </form>" 
      data-placement="right" data-original-title="Enquiries">Send Enquiries 
     </a> 
    <div class="accordion-group" ng-repeat="(key,val) in stud_finding">< 
     <a href="#" class="btn btn-large btn-primary" rel="popover"data-html="true" 
     data-content=" 
       <form> 
        <textarea class='input-xlarge' rows='12' type='text'></textarea> 
        <P> 
         <input class='btn btn-primary' type='submit' value='Send' /> 
       </form>" 
+0

Musisz napisać plunkera lub skrzypce, aby każdy mógł rozwiązać ten problem. Ale czy w międzyczasie wiesz o [ui-bootstrap] (http://angular-ui.github.com/bootstrap)? Zapewnia czyste implementacje AngularJS bibliotek jQuery Twitter Bootstrap. –

+0

dzięki za sugestię! Zajrzę do tego, mam na myśli, a ja też postaram się wkrótce opublikować plunkera. Dzięki! = D – user1166085

+3

Ja również nie rozumiem, dlaczego to pytanie jest przegłosowane. – Vivek

Odpowiedz

6

Obecnie istnieją co najmniej 2 projektów, które dostali wytyczne popover Bootstrap za rok angularjs napisany już:

Różnica polega na tym, że http://angular-ui.github.com/bootstrap/ jest rodzimy Dyrektywy AngularJS, więc nie potrzebujesz żadnych zależności od JavaScript innych firm.

Oba projekty są hostowane na GitHub, dzięki czemu można zobaczyć wdrożenia i uczyć się na nich, zdecydować się na zmianę lub po prostu skorzystać z jednego z projektów.

+0

czy zakłócałoby to bootstrap Twittera? – user1166085

+0

obydwa populacje demonstracyjne projektów ze starszymi wersjami kątowymi. podczas testowania nowoczesnego kodu, jak 1.0.6 lub 1.1.4, przestaje działać. Popover i tooltip są bezużyteczne, chyba że dodadzą częściowe opcje szablonów. – Richard

+0

@Richard Nie jestem pewien, co masz na myśli przez "przestaje działać", ponieważ przynajmniej dyrektywy z http://angular-ui.github.com/bootstrap/ działają dobrze z najnowszym AngularJS: http://plnkr.co/edit/FECkoAJgSbBVFdvzk6mx? p = preview –

11

Nie rozumiem, dlaczego to pytanie zostało odrzucone. Jest to dobry przykład na zrozumienie zasady zasięgu w kanciastym. Zakres jest w zasadzie dołączony do elementu DOM. Wszystkie kontrolery, powtórzenia itp. Będą działać tylko w tym elemencie DOM (zakres). Gdy Boostrap tworzy popover, tworzy nowy element DOM i dołącza go do ciała, więc teraz jest poza zakresem (nie jest już w tym elemencie). To kluczowa funkcja, która pozwala zrozumieć Angular.

Na szczęście Bootstrap ma rozwiązanie. Popover ma opcję container, która umożliwia dołączanie popover do konkretnego elementu zamiast do treści. Umieść tam selektor jQuery elementu DOM, który ma kontroler kątowy. http://twitter.github.io/bootstrap/javascript.html#popovers (patrz opcje)

Powiązane problemy