web-dev-qa-db-ja.com

angularjs-ng-class-[$ parse:syntax]構文エラー:トークン ':'は、式の列11にある予期しないトークンです

"ng-class"に次のコードを使用しています:

 <i class="fa" ng-class="fa-sort-up:tableService.sortState.sortBy==id && tableService.sortState.sortMode=='asc',
                               fa-sort-down:tableService.sortState.sortBy==id && tableService.sortState.sortMode=='desc',
                               fa-sort:tableService.sortState.sortBy!=id"></i>

このエラーを修正するにはどうすればよいですか。

Error: [$parse:syntax] Syntax Error: Token ':' is an unexpected token at column 11 of the expression [fa-sort-up:tableService.sortState.sortBy==id && tableService.sortState.sortMode=='asc',
fa-sort-down:tableService.sortState.sortBy==id && tableService.sortState.sortMode=='desc',
fa-sort:tableService.sortState.sortBy!=id] starting at [:tableService.sortState.sortBy==id && tableService.sortState.sortMode=='asc',
fa-sort-down:tableService.sortState.sortBy==id && tableService.sortState.sortMode=='desc',
fa-sort:tableService.sortState.sortBy!=id]
9

ng-classは次のように機能します。

<i class="fa" ng-class='{"fa-sortup" : x && y, "fa-b": a && b}'></i>

したがって、中括弧がありません。

pS 「-」などの特殊文字が含まれている場合は、クラス名を文字列"fa-sortup"内に配置する必要があります。

26
az7ar

クラスに「-」文字がある場合は、それらを ''でラップする必要があります。複数の条件がある場合は、次のように配列にします。

<i class="fa" ng-class="{'fa-sort-up':tableService.sortState.sortBy==id && tableService.sortState.sortMode=='asc',
                               'fa-sort-down':tableService.sortState.sortBy==id && tableService.sortState.sortMode=='desc',
                               'fa-sort':tableService.sortState.sortBy!=id}"></i>
4
Fedaykin

私とVisual Studio Tools for Apache Cordovaでは、「;」を追加してエラーを解決しました。最後に。そう :ng-class="{class : expression};"

1
Helzgate