2017-10-05 90 views
0

我從api接收電影類型的數字。這意味着,1 =動作,34 =戲劇,22 =恐怖......我想顯示流派名稱而不是數字。 movie.genre_ids的AngularJS用單詞替換整數數組

{{::movie.genre_ids}} 

HTML輸出:[1,34,22]

應該是這樣的:恐怖動作戲......不帶括號&號

電影有多個流派,使有工作了。

在此先感謝

+0

這似乎只是一個JavaScript問題。角度如何適應? –

+0

尋找一個有角度的解決方案 –

+0

你可以格式化你的輸出,所以它更清楚,以及? – theGleep

回答

2

假設您有$範圍是這樣的:

$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> 

爲了得到這樣的頁面

上IT驚慄,劇情
外星人恐怖,動作

0

如果你能夠映射格式化爲下面的格式,

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

您可以使用下面的代碼顯示輸出。


var app = angular.module('myApp', []); 
 

 
app.controller('MyController', function MyController($scope, $filter) { 
 
\t $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>


+0

我可以在我現有的主要ng-repeat電影列表中使用這個嗎?我在哪裏放置{{:: movie.genre_ids}}? –

+0

@KarlHusten是的,只要變量定義正確,如果您遇到問題,請提供示例數據的簡單提示!喜歡這個? ':: mapping [movie.genre_ids]' –

+0

@KarlHusten檢查我的上述評論 –

0

可以初始化對象的一個​​靜態數組這樣

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

在你的HTML中使用的角度:

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