【问题标题】:How to handle array in angular js/HTML如何在 Angular js/HTML 中处理数组
【发布时间】:2015-05-24 23:28:11
【问题描述】:

我正在使用 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()--> 将带来电影细节(演员属性将在数组中包含男性、女性主角姓名)。

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"
    ]
}

有人可以帮忙吗?

【问题讨论】:

  • Json 输出是我在 PostMan 中尝试获取资源时得到的。我刚刚添加以展示演员阵容......

标签: javascript html angularjs model-view-controller asp.net-web-api


【解决方案1】:

但它不起作用....

因为根据您收到的发布的 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 的回答)。

【讨论】:

    【解决方案2】:

    我不确定你所说的 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>
    

    【讨论】:

    • 您的解决方案是合理的,但您错过了@dfsq 在他的回答中发现的错别字。
    • 嗯,我看到了,但由于他专门询问 Cast 字段,我想他在取回对象时可能正在翻译字段。也有可能整个事情都是空白的,而他只是将其归结为演员阵容的问题。
    • $scope.Movies = pl.data 不。
    • 很高兴为您提供帮助,但听起来您更大的问题是属性名称错误?
    • 没有了...它的其中之一......@Danny 必须在我的 web api 中实现缓存.....当相同的请求时,我已经从缓存中得到了结果通过但我得到的标题与 200(OK) 相同,而不是 304
    猜你喜欢
    • 2017-03-07
    • 2023-01-19
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多