代码之家  ›  专栏  ›  技术社区  ›  Karl B.

AngularJS用文字替换整数数组

  •  0
  • Karl B.  · 技术社区  · 8 年前

    我从api收到电影类型的数字。也就是说,1=动作,34=戏剧,22=恐怖。。。。我想显示流派名称,而不是数字。

    {{::movie.genre_ids}}
    

    电影的HTML输出。流派ID: [1,34,22]

    应该是这样的:恐怖动作剧。。。不带括号和;数字

    电影有多种类型,所以这也必须奏效。

    提前感谢

    3 回复  |  直到 8 年前
        1
  •  2
  •   JC Ford    8 年前

    假设您在$scope上有类似的内容:

    $scope.genres = [];
    $scope.genres[1] = 'Horror';
    $scope.genres[34] = 'Action';
    $scope.genres[22] = 'Drama';
    
    $scope.movies = [
      {title: 'IT', genres: [1,22]},
      {title: 'Alien', genres: [1,34]}
    ]
    

    你可以在视图中这样做

    <div ng-repeat="movie in movies">
      <b>{{movie.title}}</b>
      <i ng-repeat="genre in movie.genres">{{($index > 0 ? ', ' : '') + genres[genre]}}</i>
    </div>
    

    在页面上看到这样的内容

    信息技术 恐怖、戏剧
    恐怖,行动

        2
  •  0
  •   Naren Murali    8 年前

    如果您能够将映射格式设置为以下格式,

    $scope.mapping = {"1": "action", "2": "horror"};
    

    您可以使用以下代码显示输出。


    var app = angular.module('myApp', []);
    
    app.controller('MyController', function MyController($scope, $filter) {
    	$scope.mapping = {"1": "action", "2": "horror"};
      $scope.api = [1,2];
    });
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <div ng-controller='MyController' ng-app="myApp">
        <span ng-repeat="x in api">{{mapping[x]}}&nbsp;</span>
    </div>

        3
  •  0
  •   Varun Sukheja    8 年前

    可以像这样初始化一个静态对象数组

    var movie.genre=[
        {1:'Horror'},
        {34:'Action'},
        {22:'Drama'},
        {56:'Comedy'},
        .....
    ]
    

    <span ng-repeat="id in movie.genre_ids">
    {{movie.genre[d]}}
    </span>