jquery - AngularJs ng-repeat only displaying first element -


i'm new angular, , can't quite figure out why ng-repeat displaying first element object.

here html

<div ng-app="groupapp">  <div ng-controller="groupctrl"> <div id="diveditrow" class="row">      <div class="col-lg-8" ng-repeat="data in editgroups track $index">           <div   class="input-group input-group-lg" >               <input class="form-control input-lg" ng-model="data[$index].groupname" />                 <span class="input-group-btn">                   <button type="button" class="btn btn-info btn-flat"><i class="fa fa-pencil"></i></button>                   <button type="button" class="btn btn-danger"><i class="fa fa-trash"></i></button>                 </span>             </div>     </div>      </div>    </div> </div> 

here angularjs:

var app = angular        .module('groupapp', [])        .controller('groupctrl', function ($scope, addgroup, $http) {            var id_generator = function (id) {                return id + 1            }            $scope.groups = [{ 'id': 1, 'name': '' }];          //  $scope.editgroups = new array();            $http.get("/group/getgroups")               .success(function (data) {                   $scope.editgroups = data;               });  }) 

i know data being retrieved correctly b/c when writing {{ data }} screen, following returned:

[{"competencygroupid":52,"groupname":"quality control","createdatetime":"/date(1470675542267)/","createuserid":137,"modifieddatetime":null,"modifieduserid":null},{"competencygroupid":53,"groupname":"quality","createdatetime":"/date(1470675715943)/","createuserid":137,"modifieddatetime":null,"modifieduserid":null},{"competencygroupid":54,"groupname":"adsf","createdatetime":"/date(1470681237727)/","createuserid":137,"modifieddatetime":null,"modifieduserid":null}]  

this c# controller

 public jsonresult getgroups()     {         list<competencygroup> grouplist = new list<competencygroup>();          using (var db = new ssitrainingentities())         {             //return (from g in db.competencygroups             //        select g).tolist();             grouplist = db.competencygroups.tolist();         }         var j = json(new { response = grouplist }, jsonrequestbehavior.allowget);         return j;         //return grouplist;     } 

what doing wrong here?

you trying access data variable original array. data variable actual element (object in case) inside editgroups array. can access each object within array using data.propertyname.

note: have removed http call , directly used data provided.

var app = angular         .module('groupapp', [])         .controller('groupctrl', function ($scope, $http) {           var data = [{"competencygroupid":52,"groupname":"quality control","createdatetime":"/date(1470675542267)/","createuserid":137,"modifieddatetime":null,"modifieduserid":null},{"competencygroupid":53,"groupname":"quality","createdatetime":"/date(1470675715943)/","createuserid":137,"modifieddatetime":null,"modifieduserid":null},{"competencygroupid":54,"groupname":"adsf","createdatetime":"/date(1470681237727)/","createuserid":137,"modifieddatetime":null,"modifieduserid":null}];             var id_generator = function (id) {                 return id + 1             }             $scope.groups = [{ 'id': 1, 'name': '' }];           //  $scope.editgroups = new array();             $scope.editgroups = data;   });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>    <div ng-app="groupapp">   <div ng-controller="groupctrl">  <div id="diveditrow" class="row">       <div class="col-lg-8" ng-repeat="data in editgroups track $index">            <div   class="input-group input-group-lg" >                <input class="form-control input-lg" ng-model="data.groupname" />                  <span class="input-group-btn">                    <button type="button" class="btn btn-info btn-flat"><i class="fa fa-pencil"></i></button>                    <button type="button" class="btn btn-danger"><i class="fa fa-trash"></i></button>                  </span>               </div>      </div>       </div>     </div>  </div>

update:

based on c# api controller method, seems passing in object called response contains array of groups. can either remove new object , directly pass in grouplist var first argument or change success callback access response property.

.success(function (data) {     $scope.editgroups = data.response; }); 

Comments