我在其他工作的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>
答案 0 :(得分:1)
您不能使用以数字开头的密钥名称。变量应该以字母或$或_开头。尝试使用名称为one_hour重命名密钥,而不是1h,它应该可以正常工作。