为什么我的case语句布尔赋值中出现了Illegal Token错误?

时间:2015-05-06 16:52:58

标签: javascript angularjs switch-statement angularjs-ng-repeat

我在其他工作的switch case语句中使用相同的语法。我基本上创建了一个空对象并开始向它添加键值对:

var vs = $scope;
vs.toggleTimeSpan = function(string) {

    vs.time.span = {};

    switch(string) {
        case '1h':
            // vs.time.span[1h] = true;
            vs.time.span.1h = true;
            break;

        case '1d':
            vs.time.span.1d = true;
            break;

        case '1m':
            vs.time.span.1mo = true;
            break;

        case '1y':
            vs.time.span.1yr = true;
            break;

        case 'max':
            vs.time.span.max = true;
            break;
    }
};

enter image description here

这是我打算使用vs.time.span对象的地方:

<ul class="timescale">
    <li ng-class="{'active':time.span.1h}"
        ng-click="toggleTimeSpan('1h')">1 h</li>

    <li ng-class="{'active':time.span.1d}"
        ng-click="toggleTimeSpan('1d')">1 d</li>

    <li ng-class="{'active':time.span.1mo}"
        ng-click="toggleTimeSpan('1mo')">1 mo</li>

    <li ng-class="{'active':time.span.1yr}"
        ng-click="toggleTimeSpan('1yr')">1 yr</li>

    <li ng-class="{'active':time.span.max}"
        ng-click="toggleTimeSpan('max')">max</li>
</ul>

1 个答案:

答案 0 :(得分:1)

您不能使用以数字开头的密钥名称。变量应该以字母或$或_开头。尝试使用名称为one_hour重命名密钥,而不是1h,它应该可以正常工作。