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

Why am I getting an Illegal Token error in my case statement boolean assignment?

我在其他有效的 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;
    }
};

这里是我打算使用 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>

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