如何处理 angular js/HTML 中的数组

How to handle array in angular js/HTML

我正在使用 Web API 通过 Angular 在 HTML 中显示值。

我有 4 个属性:Id、MovieName、Date 和 Cast。 Cast 是一个数组。我不知道如何处理 Cast 属性。

Controller.js

app.controller('MyController', function ($scope, MyService) {

$scope.getemploy = function () {
    var promise = MyService.getMovies();
    promise.then(function (pl) {
        $scope.Movies= pl.data
    },
    function (error) {
        $log.error('Some Prob', error);
    });
}

GetMovies()--> 将带来电影的详细信息(Cast 属性将在数组中包含男、女主角名称)。

HTML 文件:

 <tr ng-repeat="mov in Movies">
   <td>{{mov.Id}}</td>
   <td>{{mov.MovieName}}</td>
   <td>{{mov.Date}}</td>
   <td>{{mov.Cast}}</td>
 </tr>

但它不起作用。我想我需要一些其他方式来处理 Cast 属性,无论是 html 还是 angular.

我的Json输出供大家参考:

[
{
    "_movieId": 1,
    "_moviename": "Olympus Has Fallen",
    "_releaseDate": 2013,
    "_cast": [
        "Gerard Butler",
        "Dylan McDermott",
        "Aaron Eckhart",
        "Angela Bassett"
    ]
}

有人可以帮忙吗?

我不确定你所说的 Cast 不起作用是什么意思,但我猜它只是在 HTML 中显示 JSON 对象?您可以在列表中显示所有演员,执行以下操作:

<tr ng-repeat="mov in Movies">
   <td>{{mov.Id}}</td>
   <td>{{mov.MovieName}}</td>
   <td>{{mov.Date}}</td>
   <td>
       <ul>
           <li ng-repeat="member in mov.Cast">{{ member }}</li>
       </ul>
   </td>
 </tr>

But its not working....

因为根据发布的 JSON 您收到的消息,HTML 应该使用不同的密钥。试试这个:

<tr ng-repeat="mov in Movies">
   <td>{{mov._movieId}}</td>
   <td>{{mov._moviename}}</td>
   <td>{{mov._releaseDate}}</td>
   <td>{{mov._cast.join(', ')}}</td>
 </tr>

我使用简单的 join 数组方法来呈现逗号分隔的演员列表。如果您需要更具体的东西,您将需要在 mov._cast 数组上再使用一个 ngRepeat(请参阅 Danny 的回答)。