Nugka
Nugka

Reputation: 301

How to send data from ng-repeat?

I make some list, on list have date from curent date until last 30 days before. I want send date to webservice. But it always undefined variables. My code like this

HTML

   <ion-list> 
       <ion-item class="animate-repeat" ng-repeat="name in rep">
            <div>            
                <select ng-options="size as size.code for size in sizes"
                        ng-model="item"
                        style="background-color:#262261;color: white"
                        ng-change="update(item)">
                </select>
            </div>   
            <!--{{name | date: "y-MM-dd"}}-->
            {{name}}
            <button type="submit" class="button button-block"
                    id="buttonblue" ng-click="tracking()">
                <font color="white" size="4">Tracking</font>
            </button>
        </ion-item>
    </ion-list>

JS

$scope.rep = [];
for (var i=0; i < 31; i++) {  
   $scope.item = {};
   $scope.code = {};
   $scope.sizes = [{code: 123456789, name: 'Modul 1'},
                   {code: 864369038803163, name: 'Modul 2'},
                   {code: 864369038796946, name: 'Modul 4'},
                   {code: 864369038803833, name: 'Modul 5'},
                   {code: 864369038816645, name: 'Modul 6'},
                   {code: 864369038797142, name: 'Modul 7'},
                   {code: 864369038796698, name: 'Modul 8'}];
   $scope.update = function (selected) {
       $scope.item = selected;
   };
   $scope.trip = new Date();   
   $scope.besok =new Date($scope.trip.getTime() - i*(24*60*60*1000));
   $scope.rep.push($scope.besok);   
   $scope.tracking = function () {
        kaka.list($scope.item.code, $scope.name).success(function (data) {
            console.log(data);
            console.log($scope.name);
        });

   };
}

I want send data $scope.name but in console.log always show undefined. I don't know how to send date from my list. Please help me solve my problem. Thanks

Upvotes: 0

Views: 72

Answers (1)

Pengyy
Pengyy

Reputation: 38171

ng-repeat creates sub-scope, so variable name is only available at template's ng-repeat block, but for your situation you can pass name as parameter of function tracking like below:

<button type="submit" class="button button-block" id="buttonblue" ng-click="tracking(name)">
  <font color="white" size="4">Tracking</font>
</button>

$scope.tracking = function (name) {
    // use name instead of $scope.name
    kaka.list($scope.item.code, name).success(function (data) {
        console.log(data);
        console.log(name);
    });
};

Upvotes: 2

Related Questions