Monatliche Archive: Februar 2015

Installationsvorbereitung Tipp für eckige Richtlinien (Oder, Bindestriche überall wieder lieben lernen)

Ich habe ein paar apps die Make-$http.get() Anrufe und ich wollte eine aufbereitete Fehlermeldung mit hässlichen Fehlerdetails versteckt zeigen können, aber zugänglich.  Im Grunde, Dies:

image

Und dann klickt der Benutzer auf den Fehler, Sie sehen mehr info:

image

Einfache Dinge.  Da genaue dieselbe potentielle Fehler in der Verwaltung Bildschirm sowie dem Endbenutzer-Bildschirm angezeigt werden können, Es fordert eindeutig eine benutzerdefinierte eckig Richtlinie.  ICH  habe das gefunden herausragende Serie der Artikel (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) durch die große Dan Wahlin.  Nach seinen Rat, Ich habe sehr schnell ein <Hallo-Welt> Richtlinie und zogen an meinen komplexer Fehler-Anzeige-Rakel. Ich habe ein paar Probleme mit dieser komplexeren Richtlinie getroffen.  Glücklich, irgendwie durch Zufall, Ich erzählte WebStorm (der Editor verwende ich in diesen Tagen) dass die JS-Datei eine eckig-Datei war und es hat mir geholfen herauszufinden, das Problem.  Dies ist der Code für die Richtlinie selbst:

Angular.Module("CDLApp").Richtlinie("GeneralCdlErrorHandler", Funktion() {

Rückkehr {
einschränken: "E",
Ersetzen: wahr,

Anwendungsbereich: {
retrieveLastConfigurationError: "&"
},

Vorlage:
'<Div Class = "Warnung Warnung-Gefahr" Rolle = "Warnung" ng-Init = "DoShowExpandedErrorDetails = True" ng-Karte = "RetrieveLastConfigurationError()">' +
"Gab es ein i/o-Fehler oder andere Fehler. Dies geschieht in der Regel, weil Konfigurationsdatendatei nicht sein könnte " +
' gefunden oder die Konfigurationsdatei enthält falschen Informationen (wie verweisen auf einer Dokumentbibliothek " +
"das ist nicht vorhanden).' +
' <BR />' +
' <Div ng-Karte = "DoShowExpandedErrorDetails">' +
' <a Href = "#" ng-Klick = "DoShowExpandedErrorDetails = ! DoShowExpandedErrorDetails">' +
"Klicken Sie hier, um Details auszublenden." +
' </eine>: ' +
' <BR />' +
' <Pre>{{retrieveLastConfigurationError() | JSON}}</Pre>' +
' <BR />' +
' </div>' +
' <Div ng-Karte = "!DoShowExpandedErrorDetails">' +
' <a Href = "#" ng-Klick = "DoShowExpandedErrorDetails = ! DoShowExpandedErrorDetails">' +
"Klicken Sie hier, um ausführliche Fehlerinformationen zu erweitern." +
' </eine>' +
' </div>' +
'</div>'
};
});

Im Grunde, Ich erstelle ein neues Element namens "GeneralCdlErrorHandler".  Es benötigt Zugriff auf eine Funktion namens RetrieveLastConfigurationError und, in das Bereichsobjekt verarbeitet wird.  Ich hätten wahrscheinlich nur den übergeordneten Bereich, aber das fühlt sich faul.  Wenn jemand meint, dass ich das getan haben, sollten, Ich würde gerne darüber in den Kommentaren zu hören.

Dies war alles in Ordnung, aber ich war nicht immer alles.  Keine Fehler in der Konsole aufgetaucht (mindestens einmal bekam ich alle Sx-Fehler, die ich auf dem Weg erstellt).  Ich verstehe einfach keine Ausgaben, die aus der Richtlinie.  Ich ging und fügte Sie statischen Text vor der ng-Karte-Richtlinie und ich * habe * zu erhalten, die. Das machte mich glauben, dass man vielleicht die Richtlinie war nicht implizit erstellen Sie neue Vars wie "DoShowExpandedErrorDetails" oder ein "ng-Init" drin. 

Ich ging zurück in den HTML-Code zu sehen, hätte ich einen Typ und diesmal WebStorm mir geholfen.  Ich hatte in der RetrieveLastConfigurationError-Funktion wie folgt übergeben worden:

<Allgemein-Cdl-Fehler-Handler retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError()">
</Allgemein-Cdl-Fehler-handler>

Aber es wirklich notwendig, um das:

<Allgemein-Cdl-Fehler-Handler abrufen-letzte-Konfiguration-Fehler = "CDLController.retrieveLastConfigurationError()">
</Allgemein-Cdl-Fehler-handler>

WebStorm war klug genug, zu wissen, dass es getrennt werden musste.  Hätte es diesen Tipp versorgt, Ich würde wahrscheinlich noch diese Fehlerbehebung werden Lächeln.  Spaß mal!

Der Trick ist dies: nicht nur ist der Richtlinie Elementnamen getrennt, So sind alle Attribute, die Sie hinzufügen.  Sobald ich die Bindestriche hinzugefügt, Sie alle wirkten groß.  Dan's Tutorial zufällig einzelne Kurznamen verwenden, Also habe nicht ich die Verbindung herstellen..

Hoffe, das jemand hilft.

</Ende>

undefinedOnnieren Sie meinen Blog ab.

Folgen Sie mir auf Twitter bei http://www.twitter.com/pagalvin

IE9 Wirklich mag es nicht wenn man eine Verknüpfung mit Ihrer <Spannweite> Schlagwörter

Ich habe eine schlechte Angewohnheit, mit Chrome ganze Zeit verfallen.  Es ist "schlecht", weil die Sachen, die ich entwickeln wirklich braucht, um auf eine Menge von anderen Web-Browsern laufen, einschließlich, Leider IE8.  Mein Arbeit Laptop hat IE9 Standard aus irgendeinem Grund) und ich tat nur eine schnelle prüfen, welche Dinge... und wie es aussah war nicht schön.  Zum Beispiel:

image

Es hat * sollte * wie folgt aussehen:

image

 

Es war nicht nur aus, aber meine Click-Ereignisse waren nicht feuern.  (Die meisten von Ihnen, auf jeden Fall).

Visuell, Es sah aus wie Dinge damit begonnen, aus den Fugen in der Nähe der Link "Advanced Setup" gehen.  Ich grub in diesen Teil des HTML-Codes und festgestellt, dass ich diese Zeile:

<span Class = "Glyphicon Glyphicon-new-Window" />

Das scheint die zulässige syntax ("Chrome-version 40.02214.94 m"ist kein Problem damit). Ich ging und änderte es sowieso, wie gezeigt:

<span Class = "Glyphicon Glyphicon-new-Window"></Spannweite>

Jene fest es.

So ein winziges kleines Ding verursacht so ein riesiges Chaos eines Bildschirms.  Spaß mal.

Dies geschah, um eine schnelle Lösung sein, aber es ist auch die Art von Dingen, die Ihre Wirbelsäule aus Ausrichtung nur bekommt, wenn man es sieht.  Es gibt über 500 Zeilen HTML in dieser kleinen Admin-Funktion und Sie wollen nicht nur finden sich unter diesen Unkraut Graben, je Lächeln.

</Ende>

undefinedOnnieren Sie meinen Blog ab.

Folgen Sie mir auf Twitter bei http://www.twitter.com/pagalvin