ui-bootstrap Fehler beim modalen Bereich

8

Ich merke etwas Seltsames mit dem modalen Bereich des UI-Bootstrap. Es scheint, dass, wenn Sie ng-model darin verwenden, Sie $ parent referenzieren müssen, um zum Bereich des modalen Controllers zu gelangen. Beachten Sie in meinem Fall, dass die anderen Eigenschaften wie eine ng-Optionen $ parent nicht benötigen: Ссылка

Irgendeine Idee warum? Ich habe hier ein ähnliches Problem gefunden: Probleme mit dem Bereich mit der Benutzeroberfläche von Angular UI

Das hat mich dazu gebracht, die $ parent-Änderung zu versuchen, aber ich kann diesen Thread nicht kommentieren, weil ich nicht genug Reputation habe.

Irgendeine Idee, warum der Umfang sich zu ändern scheint?

Danke!

    
enantiomer2000 24.09.2013, 21:03
quelle

1 Antwort

14

Das Modal hat seinen eigenen Geltungsbereich (ich habe noch nie die Angular UI benutzt, aber es ist das einzige, was passieren kann) und wenn Sie "selectedLocation" setzen, wird die Eigenschaft auf den Modal-Bereich und nicht auf den Ihres Controllers gesetzt Umfang. Der $ parent erzwingt den Umfang des Controllers, aber das ist keine gute Lösung, weil Sie sich selbst in eine bestimmte Struktur einsperren, immer vorausgesetzt, dass das Parent des Modals das "Modell" hat.

Hier ist ein modifizierter Plunker, der ein Modellobjekt auf Ihrem Controller-Bereich verwendet (mit model.selectedLocation) Ссылка

Jedenfalls, wenn Sie Ihre Eigenschaft auf etwas wie "$ scope.model.selectedLocation" setzen, das das Verhalten ändert. Wenn ich nun "model.selectedLocation" auf das Modal referenziere, hat der Geltungsbereich des Modals kein Modellobjekt, also winkelt Angular die Geltungsbereichskette auf den Bereich des Controllers (der über ein Modellobjekt verfügt).

Sehen Sie sich dieses Video von John Lindquist an, ich denke, es kann es viel besser erklären, als ich es kann. :-) Ссылка

    
Craig Squire 24.09.2013, 21:26
quelle