2016-04-21 11 views
-4
<form name="businessFormAbout" ng-show="(businessFormAbout.$submitted)^(businessForm.$submitted)"> 

Diese Zeile zeigt Fehler in der Konsole:Warum erlaubt AngularJS keinen xor-Betrieb?

[$parse:lexerr] Lexer Error: Unexpected next character at columns 30-30 [^] in expression [(businessFormAbout.$submitted)^(businessForm.$submitted)]

+2

@deceze zu diesem Link gehen http://stackoverflow.com/questions/36745107/how-to-use-xor-functionality- in-angular-js-expression – WebInsight

+0

OK, jetzt, wo wir eine klare Frage haben ... Angular Ausdrücke verwenden einen benutzerdefinierten Parser. Es ist kein direktes Javascript, es ist eine kleine Sprache, die Javascript sehr ähnlich ist, aber höchstens eine Teilmenge davon. * Warum * das enthält nicht den '^' Operator ist jedermanns Vermutung; Versuchen Sie, den/die ursprünglichen Autor (en) zu fragen. – deceze

+0

@deceze Wenn du jetzt eine klare Frage hast, lösche bitte die downvotes.wenn ich nicht denke, das ist so schlecht eine Frage zu bekommen so viele downvotes – WebInsight

Antwort

3

Es ist nicht AngularJS, die nicht XOR unterstützt: JavaScript selbst nicht XOR unterstützt, wie Sie es definieren könnte.

JS hat einen bitweisen XOR-Operator (^), aber das funktioniert nur für Zahlen.

Sie könnten Ihre eigene XOR-Funktion ein bisschen wie folgt erstellen:

function XOR(a,b) { 
    return (a || b) && !(a && b); 
} 
+0

eckigen js Entwickler sollten es dokumentiert haben, dass nicht einmal bitweiser Operator in eckigen Bibliothek enthalten ist – WebInsight

+0

Warum? Wenn Sie in AngularJS entwickeln, sollten Sie JavaScript kennen. –

+0

"nicht mal bitweise Operator ist in angular-Bibliothek enthalten" .Ich wusste Xor funktioniert in Javascript (bitweise) – WebInsight

Verwandte Themen