Das Hinzufügen von Optionen zu Befehlen kann durch den option () decorator erfolgen. Da Optionen in verschiedenen Versionen kommen können, gibt es eine Tonne von Parametern, um ihr Verhalten zu konfigurieren. Optionen in Click unterscheiden sich von Positionsargumenten. Basiswertoptionen Die einfachste Option ist eine Wertoption. Diese Optionen akzeptieren ein Argument, das ein Wert ist. Wenn kein Typ angegeben wird, wird der Typ des Defaultwerts verwendet. Wenn kein Standardwert angegeben ist, wird der Typ als STRING angenommen. Standardmäßig ist der Name des Parameters die erste lange Option, ansonsten wird die erste kurze verwendet. Und auf der Befehlszeile: In diesem Fall ist die Option vom Typ INT, da der Standardwert eine Ganzzahl ist. Multi-Wert-Optionen Manchmal haben Sie Optionen, die mehr als ein Argument nehmen. Für Optionen wird nur eine feste Anzahl von Argumenten unterstützt. Dies kann durch den Parameter nargs konfiguriert werden. Die Werte werden dann als Tupel gespeichert. Und auf der Befehlszeile: Dynamische Vorgaben für Aufforderungen Die Optionen autoenvvarprefix und defaultmap für den Kontext erlauben dem Programm, Optionswerte aus der Umgebung oder einer Konfigurationsdatei zu lesen. Dies überschreibt jedoch den Aufforderungsmechanismus, so dass der Benutzer nicht die Möglichkeit erhält, den Wert interaktiv zu ändern. Wenn Sie möchten, dass der Benutzer den Standardwert konfiguriert, aber trotzdem aufgefordert werden kann, wenn die Option isn8217t in der Befehlszeile angegeben ist, können Sie dies tun, indem Sie einen kündbaren als Standardwert angeben. Zum Beispiel, um eine Vorgabe aus der Umgebung zu erhalten: Rückrufe und Eager-Optionen Manchmal möchten Sie einen Parameter, um den Ausführungsfluss vollständig zu ändern. Dies ist beispielsweise der Fall, wenn Sie einen Parameter - version haben möchten, der die Version ausdruckt und dann die Anwendung beendet. Hinweis: Eine tatsächliche Implementierung eines wiederverwendbaren --Versionsparameters ist in Click als click. versionoption () verfügbar. Der Code hier ist nur ein Beispiel, wie eine solche Flagge zu implementieren. In solchen Fällen benötigen Sie zwei Konzepte: eifrige Parameter und einen Rückruf. Ein eager Parameter ist ein Parameter, der vor anderen behandelt wird, und ein Callback ist das, was ausgeführt wird, nachdem der Parameter behandelt wird. Der Eifer ist notwendig, damit ein früher erforderlicher Parameter keine Fehlermeldung erzeugt. Zum Beispiel, wenn --version nicht eifrig war und ein Parameter - foo erforderlich war und vorher definiert wurde, müssten Sie es für die Umstellung auf Arbeit angeben. Weitere Informationen finden Sie unter Rückrufauswertung. Ein Rückruf ist eine Funktion, die mit zwei Parametern aufgerufen wird: dem aktuellen Kontext und dem Wert. Der Kontext bietet einige nützliche Funktionen wie das Beenden der Anwendung und gibt Zugriff auf andere bereits verarbeitete Parameter. Hier ein Beispiel für eine --version flag: Der exposevalue Parameter verhindert, dass der ziemlich sinnlose Versionsparameter an den Callback übergeben wird. Wenn dies nicht angegeben wurde, würde ein Boolean an das Hallo-Script übergeben. Das Flag resilientparsing wird auf den Kontext angewendet, wenn Click die Befehlszeile ohne ein destruktives Verhalten analysieren möchte, das den Ausführungsfluss ändern würde. In diesem Fall, weil wir das Programm beenden würden, tun wir stattdessen nichts. Wie es aussieht: Rückruf-Signaturänderungen In Click 2.0 wurde die Signatur für Rückrufe geändert. Weitere Informationen zu diesen Änderungen finden Sie unter Aktualisieren auf 2.0. Ja Parameter Für gefährliche Operationen ist es sehr nützlich, um einen Benutzer zur Bestätigung fragen zu können. Dies kann getan werden, indem man ein boolean - yes-Flag hinzufügt und nach einer Bestätigung fragt, ob der Benutzer es nicht bereitstellt und in einem Rückruf fehlgeschlagen ist: Und wie es auf der Kommandozeile aussieht: Weil diese Kombination von Parametern recht häufig ist Kann auch mit dem confirmationoption () - Designer ersetzt werden: Rückruf-Signaturänderungen In Click 2.0 wurde die Signatur für Rückrufe geändert. Weitere Informationen zu diesen Änderungen finden Sie unter Aktualisieren auf 2.0. Werte aus Umgebungsvariablen Eine sehr nützliche Funktion von Click ist die Fähigkeit, Parameter aus Umgebungsvariablen zusätzlich zu regulären Parametern zu akzeptieren. Damit lassen sich Werkzeuge viel einfacher automatisieren. Beispielsweise möchten Sie vielleicht eine Konfigurationsdatei mit einem Parameter --config übergeben, aber auch den Export eines TOOLCONFIGhello. cfg-Schlüsselwertpaares für eine schönere Entwicklungserfahrung unterstützen. Dies wird durch Klicken auf zwei Arten unterstützt. Man soll automatisch Umgebungsvariablen erstellen, die nur für Optionen unterstützt werden. Um diese Funktion zu aktivieren, muss der Parameter autoenvvarprefix an das aufgerufene Skript übergeben werden. Jeder Befehl und Parameter wird dann als eine große, unterstrichseparierte Variable hinzugefügt. Wenn Sie einen Unterbefehl namens foo unter einer Option namens Bar haben und das Präfix ist MYTOOL. Dann ist die Variable MYTOOLFOOBAR. Und über die Befehlszeile: Die zweite Möglichkeit besteht darin, Werte aus bestimmten Umgebungsvariablen manuell zu ziehen, indem der Name der Umgebungsvariablen auf der Option definiert wird. Und von der Kommandozeile: In diesem Fall kann es auch eine Liste von verschiedenen Umgebungsvariablen sein, wo das erste ausgewählt wird. Mehrere Werte aus Umgebungswerten Da Optionen mehrere Werte akzeptieren können, ist das Ziehen solcher Werte aus Umgebungsvariablen (die Strings sind) etwas komplexer. Der Weg Click löst dies, indem er es bis zu dem Typ, um dieses Verhalten anzupassen. Für multiple und nargs mit anderen Werten als 1. Klicken Sie auf die ParamType. splitenvvarvalue () - Methode aufrufen, um die Aufteilung durchzuführen. Die Standardimplementierung für alle Typen besteht darin, den Whitespace aufzuteilen. Die Ausnahmen zu dieser Regel sind die File - und Path-Typen, die beide gemäß den Pfadaufteilungsregeln des Betriebssystems8217 aufgeteilt werden. Unter Unix-Systemen wie Linux und OS X erfolgt die Aufspaltung für jeden Doppelpunkt (.) Und für Windows auf jedem Semikolon (). Und von der Befehlszeile aus: Andere Präfix-Zeichen können mit alternativen Präfixzeichen anders als - für Optionen umgehen. Dies ist beispielsweise nützlich, wenn Sie Schrägstriche als Parameter oder ähnliches behandeln möchten. Beachten Sie, dass dies im Allgemeinen stark davon abgeraten ist, da Click den Entwicklern nahelegen möchte, in der Nähe der POSIX-Semantik zu bleiben. In bestimmten Situationen kann dies jedoch nützlich sein: Und von der Befehlszeile aus: Bereichsoptionen Eine besondere Erwähnung sollte an den IntRange-Typ gehen, der dem INT-Typ sehr ähnlich ist, schränkt den Wert jedoch auf einen bestimmten Bereich ein (einschließlich auf beide Kanten). Es verfügt über zwei Modi: den Default-Modus (Non-Clamping-Modus), bei dem ein Wert, der außerhalb des Bereichs liegt, einen Fehler verursacht. Ein optionaler Klemmmodus, bei dem ein Wert außerhalb des Bereichs eingespannt wird. Dies bedeutet, dass ein Bereich von 0-5 für den Wert 10 oder 0 für den Wert -1 (beispielsweise) 5 zurückgeben würde. Und von der Befehlszeile: Wenn Sie None für keine der Kanten übergeben, bedeutet dies, dass der Bereich auf dieser Seite offen ist. Rückrufe für die Validierung geändert in Version 2.0. Wenn Sie eine benutzerdefinierte Validierungslogik anwenden möchten, können Sie dies in den Parameterrückrufen durchführen. Diese Rückrufe können sowohl Werte ändern als auch Fehler auslösen, wenn die Validierung nicht funktioniert. In Click 1.0 können Sie nur den UsageError anheben, aber beginnend mit Click 2.0 können Sie auch den BadParameter-Fehler anheben, der den zusätzlichen Vorteil hat, dass er automatisch die Fehlermeldung formatiert, um auch den Parameternamen zu enthalten. Und wie es aussieht: Da (this) isnt nicht mehr mit ES6 Pfeil-Funktion, die nicht die gleiche haben als Funktion (). Sollten Sie (dies) nicht verwenden, wenn Sie ES6-Syntax verwenden. Neben den offiziellen jQuerys anwser. Theres eine einfachere Weise, das zu tun, was die Spitzenantwort sagt. Der beste Weg, um die html einer ausgewählten Option zu verwenden ist, können Sie ersetzen html () durch Text () oder alles, was Sie wollen (aber html () war in der ursprünglichen Frage). Fügen Sie einfach die Änderung des Ereignis-Listeners hinzu. Mit der jQuerys shorthand Methode ändern (). Um den Code auszulösen, wenn die gewählte Option geändert wird. Wenn Sie nur wollen, um den Wert der Option kennen: ausgewählt (die Option, die der Benutzer gewählt hat) können Sie einfach verwenden (yourSelect).val () beantwortet Ihre Antwort 2017 Stack Exchange, Inc
No comments:
Post a Comment