2015-02-19 17 views
19

Nur einige Bower-Komponenten neu installiert, aber die fraglichen Komponenten wurden nicht aktualisiert, selbe 0.12.0 ui.bootstrap. Verwenden Sie auch ui-router 0.2.13, um den Status in eine andere Seite zu ändern.Seltsame Winkel-ui Datepicker-Abhängigkeitsfehler

Die ungeradee Fehlermeldung ist

Error: [$compile:ctreq] Controller 'datepicker', required by directive 'daypicker', can't be found!

Aber wenn ich an der ui-Bootstrap-tpls.js Datei aussehen wird die Datepicker-Controller direkt über daypicker definiert und aufgenommen werden sollten.

Könnte dies durch einen fehlerhaften Konflikt verursacht werden datepicker Klassenname oder etwas?

Ich weiß, das ist nicht viel zu tun, aber wird aktualisiert, da ich Zeit habe, Code hinzuzufügen. Scheint so, als könnte irgendwo ein Konflikt datepicker sein. Es passiert nur bei stateChange von einer Seite zur anderen. Ein vollständiger Ablauf der Verwendung des Datepickers funktioniert bis zur letzten Seite. Wie kann eine Controllerabhängigkeit verpasst werden, wenn sie sich in derselben Datei befindet?

Auf die off chance jemand das schon einmal gesehen hat, würde ich für jede Anleitung dankbar sein.

UPDATE Apr 23 15: verwendete einen modalen Dialog mit einem Formular, das den Benutzer auf eine andere Seite auf OK klicken würde klicken.

+0

ich das gleiche Problem bekam, finden Sie eine Lösung/Abhilfe? –

+0

@RoyLing Nein, ich habe eine Problemumgehung, die nicht den gleichen Controller verwendet, um den Fehler zu vermeiden. Meine anderen Vermutungen waren, dass es etwas damit zu tun haben könnte, dass angular-ui noch nicht vollständig mit eckigen 1.3.x kompatibel ist. Darüber hinaus hatte ich keine Ideen mehr. Ich versuchte, in einer Geige zu replizieren, konnte aber nicht reproduzieren. – Brian

+0

die Versionsinkompatibilität ist möglich Ursache, überprüft nur die Deps von angular-Bootstrap als "" angular ":"> = 1 <1.3.0 " –

Antwort

0

Sie benötigen ui.bootstrap.0.12.0.js zu ui-Bootstrap-TPLS-0.13.3.js

+0

Danke, aber dieses Problem älter 0,13.3 um etwa 4 Monate. In Anbetracht der Komplexität und des Zusammenspiels der verschiedenen Steuerelemente wird es niemals gelöst werden. Vielleicht sogar in neueren Versionen behoben, aber "warte auf ein Update" war damals keine Option. – Brian

1

Ich hatte diesen Fehler zu aktualisieren Aktualisierung 0.14.x. ui.bootstrap

hatte ich die Vorlagen in eigene Module überschrieben, die die Probleme verursacht:

angular.module("template/datepicker/datepicker.html", []).run(["$templateCache", function ($templateCache) { 
    $templateCache.put("template/datepicker/datepicker.html", 
     "<div ng-switch=\"datepickerMode\" role=\"application\" ng-keydown=\"keydown($event)\">\n" + 
     " <daypicker ng-switch-when=\"day\" tabindex=\"0\"></daypicker>\n" + 
     " <monthpicker ng-switch-when=\"month\" tabindex=\"0\"></monthpicker>\n" + 
     " <yearpicker ng-switch-when=\"year\" tabindex=\"0\"></yearpicker>\n" + 
     "</div>"); 
    }]); 

Nach dem Entfernen der Module wieder gearbeitet.

Ursprünglich hatte ich die Vorlagen für die Verwendung von font-awesome Icons anstelle von Glyphicons geändert. Jetzt überschreiben ich die glyphicon CSS-Klasse zu font-awesome Symbole zu ändern:

.glyphicon { 
    font: normal normal normal 14px/1 ourIconFont; 
} 
.glyphicon-arrow-right:before, 
.glyphicon-chevron-right:before { 
    content: "\f054"; 
} 
.glyphicon-arrow-left:before, 
.glyphicon-chevron-left:before { 
    content: "\f053"; 
} 
+0

Das war auch was ich tat. Aber auch nach dem erneuten Hinzufügen des Vorlagencaches und dem erneuten Ändern von FontAwesome beim Upgrade war dies immer noch ein Problem. Habe einfach nicht mehr die nötigen Informationen, Code ist alt und staubig! Aber haben Sie eine Verbesserung. – Brian

0

hatte das gleiche Problem, war unsere Lösung die 0,14 nach dem Upgrade auf UIB wir ein eigenes Template für picker und hatte die uib- hinzufügen Präfixe zu den Kind-Direktiven innerhalb des Datumsspeichers (Tag, Monat Jahr). z.B.

<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)"> 
    <daypicker ng-switch-when="day" tabindex="0"></daypicker> 
    <monthpicker ng-switch-when="month" tabindex="0"></monthpicker> 
    <yearpicker ng-switch-when="year" tabindex="0"></yearpicker> 
</div> 

zu

Changed
<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)"> 
    <uib-daypicker ng-switch-when="day" tabindex="0"></uib-daypicker> 
    <uib-monthpicker ng-switch-when="month" tabindex="0"></uib-monthpicker> 
    <uib-yearpicker ng-switch-when="year" tabindex="0"></uib-yearpicker> 
</div>