首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角纳克-重复对象的动态数组

角纳克-重复对象的动态数组
EN

Stack Overflow用户
提问于 2017-03-20 03:05:04
回答 4查看 1K关注 0票数 1

给定一个对象数组的json,如何使用ng-重复动态显示它?error键是静态的/始终保持不变。只是error的值发生了变化。因此,如果我的密码字段被错误删除,那么我将在password上使用error密钥。

代码语言:javascript
复制
{ 
  "error":  {
    "firstName": {
      "0": "The first name field is required.",
      "1": "The first name field must have 2-5 characters."
    },
    "lastName": {
      "0": "The last name field is required."
    }
  }
}

代码语言:javascript
复制
{ 
  "error":  {
    "password": {
      "0": "The password field is required."
    }
  }
}

我试着做:

代码语言:javascript
复制
<ul ng-repeat="message in errormessage">
    <li ng-repeat="(k,v) in message">
         {{k}} - {{v}}
    </li>
</ul>

但它会显示以下内容:

代码语言:javascript
复制
0 - [
0 - ]
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-03-20 03:31:19

代码语言:javascript
复制
angular.module('app', [])
  .controller('SampleCtrl', function($scope) {
    $scope.errormessage = {
      "error": {
        "firstName": {
          "0": "The first name field is required.",
          "1": "The first name field must have 2-5 characters."
        },
        "lastName": {
          "0": "The last name field is required."
        },
        "passowrd": {
          "0": "The password field is required."
        }
      }
    };
  });
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="SampleCtrl">

  <ul ng-repeat="message in errormessage">
    <li ng-repeat="(k,v) in message">
      <b>{{k}}:</b><br>
      <ul>
        <li ng-repeat="err in v">
          {{err}}
        </li>
      </ul>
    </li>
  </ul>
</div>

票数 2
EN

Stack Overflow用户

发布于 2017-03-20 03:17:26

编辑

我认为你必须考虑的第一件事是,如果你能控制你的json,并以这样的方式表示它,你就得把它正常化。

代码语言:javascript
复制
$scope.errormessage = {
  "error": {
        "firstName": {
            "0": "The first name field is required.",
            "1": "The first name field must have 2-5 characters."
        },
        "lastName": {
            "0": "The last name field is required."
        },
        "passowrd": {
             "0": "The password field is required."
        },
        "mail": {
            "0": "The first name field is required.",
            "1": "The first name field must have 2-5 characters."
        },
        "newsletter": {
             "0": "The newsletter field is required."
        },
        "address": {
             "0": "The address field is required."
        }
    }
}

为什么会这样,因为在同一个对象或数组上不能有两个名为error的字段。在此之后,提供的第一个解决方案必须有效。

代码语言:javascript
复制
<div ng-app="app" ng-controller="SampleCtrl">
    <ul ng-repeat="message in errormessage">
       <li ng-repeat="(k,v) in message">
         <b>{{k}}:</b><br>
         <ul>
            <li ng-repeat="err in v">
             {{err}}
            </li>
         </ul>
       </li>
    </ul>
</div>
票数 0
EN

Stack Overflow用户

发布于 2017-03-20 03:31:22

确保您在正确的对象上使用ng-重复。你有:

代码语言:javascript
复制
ng-repeat="message in errormessage"

errormessage的内容似乎是"[]"。请参阅http://jsfiddle.net/hgk6vsqv/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42895197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档