Lösung zu jshint "Besser geschrieben in dot-notation", wenn ich die gültige Verwendung von nicht-Punkt-notation
Wie nutzt man die Punkt-notation, wenn ich bin, sofern ein string?
Ich bin ein wenig code schreiben, füllen Sie eine eckige 'x-editable' Art der Steuerung. Ich habe ein array von Werten mit einem vordefinierten string-Bezeichner basierend auf, was mein webapi-Dienst übergeben wird, zurück zu mir. Es sendet einen string zurück. Basierend auf diesen string, wähle ich das Objekt aus dem array habe ich pre-definiert, verwenden Sie die folgende Methode:
valuetoshow = myarray['stringFromWebApiCall'];
JSHINT ist, werfen passen will, weil es mir zu verwenden, die Punkt-notation. Ich verstehe, WARUM JSHINT ist mir dies erzählen, und auch ich weiß, bei welchen Linien ist es, mir zu erzählen, und ich weiß, wenn ich mein code etwas wie "Antworten.Bachelor = bigarray" es wird fix die jshint. Ich weiß nur nicht, was zu tun ist über den Zugriff auf das array verwenden .notation, wenn ich ' m vorausgesetzt, eine Zeichenfolge im code unten.
Ist es eine Art von Methode in javascript, die mir erlaubt, einen string zu suchen, bis etwas in dot-notation? Ich bin auf C# und das quasi-typisierte seltsame Definition von Variablen, die es zu beweisen schwierig für mich zu wickeln meinem Kopf herum.
['UNDERGRADUATE'] is better written in dot notation.
['GRADUATE'] is better written in dot notation.
['HONORARY'] is better written in dot notation.
['DOCTORATE'] is better written in dot notation.
['MASTERS'] is better written in dot notation.
['UNDEFINED'] is better written in dot notation.
Sollte ich versuchen, um zu unterdrücken der Fehler??? Sollte ich einfach schreiben, hat ein hässliches switch-Anweisung auf die api-Ergebnisse?
Hier ist der code der
answers['UNDERGRADUATE'] = [
{ 'name': 'Find a job', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Create a network with STTI members', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Receive nursing guidance', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Learn and grow through online continuing nursing education', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false }
];
answers['GRADUATE'] = [
{ 'name': 'Find a job', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Expand your network with STTI members', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Grow your portfolio', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Develop advanced leadership skills', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Stay current on nursing trends', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Learn and grow through online continuing nursing education', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false }
];
answers['NURSE LEADER'] = [
{ 'name': 'Find a job', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Expand your network with STTI members', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Grow your portfolio', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Develop advanced leadership skills', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Stay current on nursing trends', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Learn and grow through online continuing nursing education', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false }
];
answers['HONORARY'] = [
{ 'name': 'Find a job', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Expand your network with STTI members', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Grow your portfolio', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Develop advanced leadership skills', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Stay current on nursing trends', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Learn and grow through online continuing nursing education', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false }
];
answers['DOCTORATE'] = [
{ 'name': 'Find a job', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Expand your network with STTI members', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Grow your portfolio', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Develop advanced leadership skills', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Stay current on nursing trends', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Learn and grow through online continuing nursing education', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false }
];
answers['MASTERS'] = [
{ 'name': 'Find a job', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Expand your network with STTI members', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Grow your portfolio', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Develop advanced leadership skills', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Stay current on nursing trends', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Learn and grow through online continuing nursing education', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false }
];
answers['UNDEFINED'] = [
{ 'name': 'Find a job', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Expand your network with STTI members', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Grow your portfolio', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
{ 'name': 'Develop advanced leadership skills', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Stay current on nursing trends', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false },
{ 'name': 'Learn and grow through online continuing nursing education', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': false }
];
if ($rootScope.constituent != undefined){
if ($rootScope.constituent.InductedAs != undefined) {
$scope.constituentPriorities = answers[$rootScope.constituent.InductedAs.toUpperCase()];
} else {
$scope.constituentPriorities = answers['UNDEFINED'];
}
}
Umh... Die einzige Eigenschaft name im code erfordern-Klammer-notation ist
NURSE LEADER
Sie können schreiben, alle anderen mit der dot-notation.Sie müssen nicht "strings" Sie haben primitiven innerhalb der Klammern. Sie sind hardcoded, also nicht dynamisch erzeugt. Wenn Sie eine variable innerhalb der Klammern, entfernen Sie die Anführungszeichen. Nur-Eigenschaft Namen, die mit chracters außerhalb der
$, _, A-Z, a-z, 0-9
müssen-Klammer-notation als hardcoded,stackoverflow.com/questions/13192466/...
InformationsquelleAutor CarComp | 2015-01-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
... Ja?
etc
Klären: Sie schreiben zu müssen-das Zeug oben Ihr code, der die eigentliche Erklärung der Daten, wie
answers.UNDERGRADUATE
. JSHint nicht beschweren über diese Zeile:Offensichtlich, dass die Zeile nicht geschrieben werden kann mit dot-notation. Die Zeilen, JSHint beschwert sich über die Zeilen, die wörtlich geschrieben als
answers['UNDEFINED']
oderanswers['UNDERGRADUATE']
. Das sind die Zeilen, die Sie benötigen, um fix zu schweigen JSHint.Wo hast
UNDERGRADUATE
,GRADUATE
etc kommen?...Meine webapi gibt eine riesige Variablen-array mit array, wo.InductedAs = 'BACHELOR' usw.
Warum sind Sie das Ergebnis von einer API durch JSHint? Diese Frage macht keinen Sinn. Die Fehler die du gepostet hast zeigen JSHint ist unter Ausnahme der wörtlichen abgetippt string
answers['UNDERGRADUATE']
, nicht eine andere Zeichenfolgeanswers[variableName]
. Sie sollten nicht ausgeführt werden, Ihre API-Antwort durch JSHint. Sie sollte auch nicht wieder JavaScript. Dies ist, was ist JSON für.Sie kann es nicht, und JSHint nicht Fragen Sie. Ein mal, und dann bin ich die Beantwortung nicht wieder, weil Sie mir nicht zuhört: Die Hinweise, die Sie bekommen, sind über die literal-Zeichenfolge
answers['UNDERGRADUATE']
. Das ist alles. Sie müssen umschreiben, , dass bestimmte Folge von Zeichen zu Lesenanswers.UNDEFINED
zu schweigen JSHint. Die spezifischen Zeichen sind im code vorhanden läufst du durch JSHint oder JSHint würde nicht geben Sie, dass Hinweis. Fixieren Sie diese. JSHint nicht leisten können ein Hinweis auf so etwas wieanswer[variableName]
.InformationsquelleAutor meagar