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

此行顯示錯誤控制檯:爲什麼AngularJS不允許異或操作?

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

+2

@deceze轉到此鏈接http://stackoverflow.com/questions/36745107/how-to-use-xor-functionality- in-angular-js-expression – WebInsight

+0

好吧,現在我們已經有了一個明確的問題...... Angular表達式使用自定義分析器。這不是直接的Javascript,它是一種非常類似於Javascript的迷你語言,但它最好是它的一個子集。 *爲什麼*這不包含'^'操作符取決於任何人的猜測;嘗試詢問原作者。 – deceze

+0

@deceze如果你們現在都有明確的問題,請刪除downvotes。因爲我不認爲這是一個很糟糕的問題得到這麼多downvotes – WebInsight

回答

3

這不是不支持XOR AngularJS:JavaScript的本身不支持XOR,你可以定義它。

JS確實有一個按位異或運算符(^),但這隻適用於數字。

你可以創建自己的XOR功能有點像這樣:

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

角js開發人員應該記錄它,甚至沒有按位運算符包含在角庫 – WebInsight

+0

爲什麼?如果你在AngularJS中開發,你應該知道JavaScript。 –

+0

「甚至沒有按位運算符包含在角庫」我知道xor在javascript中工作(按位) – WebInsight