我在其他有效的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重命名密钥,它应该可以工作。
关于javascript - 为什么我的case语句 bool 分配中出现非法 token 错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30082937/