1

我之前一直在使用这样的索引值:

{{ $index }}

我真正需要的不是得到一个数字,而是我想得到一个从 A 到 Z 的大写字符。字符用完应该没有问题,因为我最多只有 10 个重复的东西。

有人能告诉我我该怎么做吗?

4

3 回答 3

5

将以下方法添加到您的范围:

$scope.indexChar = function (index) {
    return String.fromCharCode(65 + index);
};

然后在您的视图中使用它:

{{ indexChar($index) }}

这是小提琴:http: //jsfiddle.net/Xs5Qn/

于 2013-09-15T17:28:29.817 回答
3

您可以使用包含在过滤器中的函数 String.fromCharCode(n):

angular.module('myApp').filter('fromCharCode', function() {
  return function(input) {
    return String.fromCharCode(input);
  };
});

在模板中,您可以这样称呼它:

{{($index + 65) | fromCharCode}}  // 65 is the letter A

编辑:您还可以创建一个只返回大写字母的更具体的过滤器:

angular.module('myApp').filter('letterFromCode', function() {
  return function(input) {
    var code = input % 26;
    return String.fromCharCode(65 + code);
  };
});
于 2013-09-15T17:33:46.630 回答
1

只需使用一个数组,代表字母表。

$scope.alphabet = ["A", "B", "C", .... "Z"];

并在模板中使用它,例如:

{{ alphabet[$index] }}
于 2013-09-15T17:28:08.827 回答