2016-11-13 30 views
1

チルドオペレータ~ng-ifディレクティブで動作しませんが、このような状態を確認できますmessage.indexOf('angular') > 0。 チルドの演算子がHTML内で動作しない理由を知りたい。 angularJSでチルダ演算子はangularjsで動作していませんか?

<div ng-if="~message.indexOf('angular') ? true : false">...</div> 

:HTMLで

$scope.message = 'Hello angular'; 

エラーが角度のテンプレート表現の構文は JavaScriptの表現の構文のような非常にある

angular.js:13920 Error: [$parse:lexerr] Lexer Error: Unexpected next character at columns 0-0 [~] in expression [~message.indexOf('angular') ? true : false]. 
http://errors.angularjs.org/1.5.8/$parse/lexerr?p0=Unexpected%20nextharacter%20&p1=s%200-0%20%5B~%5D&p2=~message.indexOf('angular')%20%3F%20true%20%3A%false 
    at https://code.angularjs.org/1.5.8/angular.js:68:12 
    at Lexer.throwError (https://code.angularjs.org/1.5.8/angular.js:14179:11) 
    at Lexer.lex (https://code.angularjs.org/1.5.8/angular.js:14101:16) 
    at AST.ast (https://code.angularjs.org/1.5.8/angular.js:14303:30) 
    at ASTCompiler.compile (https://code.angularjs.org/1.5.8/angular.js:14771:31) 
    at Parser.parse (https://code.angularjs.org/1.5.8/angular.js:15700:29) 
    at $parse (https://code.angularjs.org/1.5.8/angular.js:15865:39) 
    at ChildScope.$watch (https://code.angularjs.org/1.5.8/angular.js:17104:19) 
    at Object.link (https://code.angularjs.org/1.5.8/angular.js:26396:16) 
    at https://code.angularjs.org/1.5.8/angular.js:1247:18 
+0

どうしてあなたは**〜**何らかの特別な理由を使用していますか? – Aravind

+1

特別なものはありません。ほとんどの場合、チルダ演算子を使用してJavaScriptの 'indexOf()'の条件をチェックしています。だから私はhtmlでも同じことを試みましたが、それはエラーを示しています。 @Aravind – Pradeep

答えて

3

コンソールに表示されます。しかし、まだJavaScriptではありません。

重要な違いは、in the documentation列挙され、そのうちの一つが

  • ませビット単位、カンマ、ボイド演算子を述べている:あなたは角式でビット単位、または無効演算子を使用することはできません。

Being a bitwise operator~サポートされていません。

関連する問題