Angular 2的[ngSwitchCase]无法支持负值?

3

注释掉 <span *ngSwitchCase="-1">&darr;</span> 不会报错。

<span class="pull-left ranking-movement" [ngSwitch]="profile.rankingMovement">
    <span *ngSwitchCase="1">&uarr;</span>
    <span *ngSwitchCase="0">&#9472;</span>
    <span *ngSwitchCase="-1">&darr;</span>
</span>
ngSwitchCase不支持负数吗?
以下是错误信息:
main.js?v1:23062 Unhandled Promise rejection: Template parse errors:
Parser Error: Unexpected token 1, expected identifier, keyword, or string at column 15 in [ngSwitchCase -1] in MainComponent@93:42 ("                   <span *ngSwitchCase="0">&#9472;</span>
                                    <span [ERROR ->]*ngSwitchCase="-1">&darr;</span>
                                </span>
                            "): MainComponent@93:42
Parser Error: Unexpected token 1, expected identifier, keyword, or string at column 15 in [ngSwitchCase -1] in MainComponent@93:42

我正在使用RC.6版本。


如果你不将它注释掉,会得到什么错误? - Günter Zöchbauer
2个回答

4
我不知道为什么这不被支持,但你可以采用以下方法解决:
<span *ngSwitchCase="0 - 1">&darr;</span>

2
它似乎无法将以“-”开头的字符串识别为表达式。我认为这是一个错误。 - Günter Zöchbauer

2
使用Angular 2.2.0-rc.0(2016年11月2日)时,我遇到了同样的问题。
我个人用以下方法解决了这个问题:

<div *ngSwitchCase="'-1'"></div>

顺便说一下,这种错误可能会引起其他看似无关的错误(对我来说是:在混合NgSwich和NgFor时,“表达式已在检查后更改”)。PS:我想评论Günter Zöchbauer的答案,但由于声望点数不足,我无法这样做。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接