Ошибка: дубликаты в повторителе не допускаются. Используйте выражение «track by» для указания уникальных ключей

0

здесь на самом деле полная ошибка: Ошибка: [ngRepeat: dupes] Дубликаты в ретрансляторе не разрешены. Используйте выражение "track by" для указания уникальных ключей. Повторитель: orang in orangs, Duplicate key: string: ", Duplicate value:"

вот мой html-код:

<ion-view view-title="Daftar Orang">
  <ion-content>
    <ion-list>
      <ion-item ng-repeat="orang in orangs">
        {{orang.nama}}
      </ion-item>
    </ion-list>
  </ion-content>
</ion-view>

вот мой угловой контроллер:

.controller('OrangCtrl', function($scope, $http, $ionicLoading, $ionicHistory) {

  $ionicHistory.nextViewOptions({
    disableBack: true
  });

  //loading
  $scope.show = function() {
    $ionicLoading.show({
      template: '<ion-spinner icon="android"></ion-spinner><br>Harap Tunggu'
    }).then(function(){
       console.log("The loading indicator is now displayed");
    });
  };
  $scope.hide = function(){
    $ionicLoading.hide().then(function(){
       console.log("The loading indicator is now hidden");
    });
  };  
    $scope.show();
    $http({
        url: "http://localhost/android_server/orang/read?key=vr46",
        method: "GET",
        data: {}
    })
    .then(function(response) {
        $scope.myData = response.data;
        $scope.hide();
          $scope.orangs = angular.toJson($scope.myData.data);
          console.log('Response Data', $scope.orangs);

    });   

})

и вот мой контроллер codeigniter rest_server:

    <?php

require(APPPATH.'libraries/REST_Controller.php');

class Orang extends REST_Controller {

    public function __construct(){
        parent::__construct();
            date_default_timezone_set("Asia/Jakarta");

        if (isset($_SERVER['HTTP_ORIGIN'])) {
            header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
            header('Access-Control-Allow-Credentials: true');
            header('Access-Control-Max-Age: 86400');    // cache for 1 day
        }

        // Access-Control headers are received during OPTIONS requests
        if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

            if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
                header("Access-Control-Allow-Methods: GET, POST, OPTIONS");         

            if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
                header("Access-Control-Allow-Headers:        
                {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

            exit(0);
        }           


    }

    function read_get()
    {
        $data = $this->db->order_by('id', 'DESC')->get('orang')->result();
        if($data){
            $response['data'] = $data;
            $response['status'] = 1;
        }else{
            $response['status'] = 0;
            $response['message'] = 'Data tidak ada';
        }   
        $this->response($response);
    }
}

Для получения данных я использовал сервер останова codeigniter.

Теги:
ionic-framework
codeigniter
foreach

1 ответ

0

Добавьте 'track by $ index' к вашему ng-repeat.

<ion-item ng-repeat="orang in orangs track by $index">
  {{orang.nama}}
</ion-item>

Угловой не любит дублировать ключи в репитерах. Это будет отслеживать их по их индексу. См. Более подробное объяснение здесь.

  • 0
    Теперь ошибка исчезла, но данные по-прежнему не отображаются

Ещё вопросы

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