Как NG-повторить в значениях массива в представлениях

0

Как использовать ng-repeat для значений массива внутри ng-repeat в VIEWS?

Мой второй ng-repeat не работает.

Значение общих документов. Документы:

[ "14-10-2015.xls", "15-10-2015.xls", "16-10-2015.xls"]

 <div class="box-body table-responsive no-padding">
        <table class="table table-hover table-striped">
          <tr>
            <th>#</th>
            <th>Company</th>
            <th>Branch</th>
            <th>Document Type</th>
            <th>Desciption</th>
            <th>Reference Number</th>
            <th>Issue Date</th>
            <th>Expiry Date</th>
            <th>Documents</th>
          </tr>
          <tr ng-repeat="generalDocument in generalDocuments | orderBy: 'generalDocument.id' | filter: search">
            <td>{{ $index + 1 }}</td>
            <td>{{ generalDocument.company.company_name }}</td>
            <td>{{ generalDocument.branch.branch_name }}</td>
            <td>{{ generalDocument.document_type.document_type }}</td>
            <td>{{ generalDocument.description }}</td>
            <td>{{ generalDocument.reference_number }}</td>
            <td>{{ generalDocument.issue_date }}</td>
            <td>{{ generalDocument.expiry_date }}</td>
            <td>
                <div class="btn-group">
                  <button type="button" class="btn btn-default  btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                     Download <span class="caret"></span>
                  </button>
                  <ul class="dropdown-menu">
                    <li ng-repeat="document in generalDocument.documents track by $index">
                      <a href="">{{ document }}</a>
                    </li>
                  </ul>
                </div>
            </td>
          </tr>
        </table>
      </div>

UPDATE: я добавил трек по индексу $ index, и теперь он циклы. Но циклы на каждого персонажа.

ОБНОВЛЕНИЕ: я console.log generalDocument и generalDocument.document извлекается из базы данных как

document: "["EK 845 FDX 20150906 00001 CARGO1.xls","EK 845 FDX 20150906 00004 MOH.xls","EK 847 FDX 20150811 000010 COMMPERSONAL3.xls"]"
  • 1
    что вы подразумеваете под "не работает"? Что это делает? Можете ли вы создать пример jsfiddle / plunker для демонстрации?
  • 0
    Второй нг-повтор даже не зацикливается. Я подозреваю, что, возможно, что-то не так с моим массивом в generalDocument.documents
Показать ещё 8 комментариев
Теги:
arrays
angularjs-ng-repeat

3 ответа

0
Лучший ответ

вы уверены, что у вас есть массив в свойстве "документы"? Он выглядит как строка в объявлении UPDATE.

"JSON.parse" это сначала, если он появится в виде строки с сервера. И в идеале вам следует изменить ответ сервера, чтобы отправить массив.

Надеюсь, поможет

0

Спасибо всем за помощь.

generalDocument.document извлекается из базы данных как STRING.

Я просто изменил свою модель с сервера, чтобы он возвращал json-массив вместо строкового значения. теперь ng-repeat работает так, как должен.

0

Я вставляю пример. пожалуйста, укажите angular.min.js

<html>
    <head>
        <title>Angular JS Directives</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src="angular.min.js"></script>
    </head>
    <body>
        <div ng-app="myApp" ng-controller="contrl">
            <p><input type="text" ng-model="city" /></p>
            <p>My City Name is: {{city}}</p>
            <p><input type="number" ng-model="qnty" /></p>
            <p><input type="number" ng-model="cost" /></p>
            <p>Total amount is : {{(qnty * cost)|currency}}</p>
            <p><input type="text" ng-model="test" /></p>
            <ul>
                <li ng-repeat="x in names | filter:test | orderBy:'country'">
                    {{(x.name | uppercase) + ',' + x.country}}
                </li>
            </ul>
        </div>
        <script>
            angular.module('myApp', []).controller('contrl', function ($scope) {
                $scope.qnty = 1;
                $scope.cost = 5;
                $scope.names = [
                    {name: 'Jani', country: 'Norway'},
                    {name: 'Hege', country: 'Sweden'},
                    {name: 'Kai', country: 'Denmark'}];
            });
        </script>
    </body>
</html>
  • 0
    Спасибо Юсуф. Приведенный вами пример не похож на мой случай. Код у меня есть два нг-повтор. В моем коде первый ng-repeat работает. Второй ng-repeat не имеет значений Array вместо объектов Json.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню