2013-05-22 10 views
5

Ich versuche, eine modale für die Anmeldung machen/registrieren, Formulare und wollte etwas machen, die wiederverwendbar ist, stieß ich auf this blog post, die durch Herstellung einer Richtlinie geht. Ich benutzte das genauso wie angular-ui-bootstrap docs, um mein modal zu machen. Es funktioniert, aber das erste Mal, wenn ich auf die Schaltfläche klicke, um das Modal zu öffnen, funktioniert es nicht. Ich kann sehen, dass der Bereich mit Batarang erstellt wird, aber nichts erscheint. Nachfolgende Klicks funktionieren, und wenn ich 2 Tasten habe, egal welche ich zuerst drücke, funktioniert das nicht, und danach funktioniert beides.Angular UI Bootstrap - modale Pop nicht auf dem ersten Klick

machte ich eine plnkr, dies zu zeigen. Ich verwende Vorlagen usw., also habe ich diese hinzugefügt. Sie können sehen, dass durch Drücken von "Registrieren" oder "Anmelden" das Modal nicht angezeigt wird, aber wenn Sie erneut klicken, werden die Mods angezeigt. Sie können auch sehen, dass der Bereich beim ersten Drücken mit Batarang erstellt wird.

Vielen Dank im Voraus für die Hilfe!

Edit: Ich fand einige weitere Informationen, die hilfreich sein könnten. Wenn ich das erste Mal auf den Link klicke, wird der scope.closeFormModal aufgerufen.

+0

Haben Sie das jemals funktioniert? Das gleiche Problem für mich. Ich führe es zurück zu $ ​​modal.open(). Dann Code. Es hat etwas damit zu tun, dass das Versprechen bei einem Animationsereignis ausgelöst wird. Ich beschreibe es als Käfer und benutze stattdessen einen eckigen Gurt. – Noogen

+1

Ja, ich habe das gleiche tatsächlich getan. – user2411211

+0

Angular-UI-Bootstrap und Bootstrap versuchen beide einen Klick zu fangen, 1 fängt den ersten Klick ab, lässt das Event durch, aber das nächste wartet ebenfalls auf einen Klick ... –

Antwort

0

Try add:

scope.$watch(
    function() { 
     return scope.formModal; 
    }, 
    function (newData, oldData) { 
     if (newData === oldData) { 
      return; 
     } 
     if (newData) { 
      $compile($element.contents())(scope); 
     } 
    }); 

Funktion zu verknüpfen, die von $ kompilieren Funktion zurückgegeben wurde.

Verwandte Themen