Pianoc
Pianoc

Reputation: 797

AngularJS ng-repeat: push object to array

I have an object for selectedProduct. I now want to create an array of these selectedProduct objects so I can build a list using ng-repeat. I;ve set the scope to an empty array but what is the angular way to push these so I can access them via ng-repeat, i.e. product in products.

 $scope.products = [];

    $scope.getProduct = function() {
        ProductService.getProduct($scope.eanInput.ean)
        .then(function(product) {
            $scope.selectedProduct = product;
            $scope.selectedProduct.ean = $scope.eanInput.ean;
            $scope.selectedProduct.qtyInput = 1;
            $scope.focusOn = 'qty';

            $scope.eanInput.productFound = true;
        })
        .catch(function() {
            $scope.eanInput.productFound = false;
        });
    };

Upvotes: 0

Views: 4868

Answers (2)

Robin-Hoodie
Robin-Hoodie

Reputation: 4974

To my knowledge there is no angular way of pushing an object into an array, you can just use the default javascript way:

$scope.products.push(product);

Upvotes: 5

Arno_Geismar
Arno_Geismar

Reputation: 2330

I would just push them to the array to be honest :

 $scope.products = [];

    $scope.getProduct = function() {
        ProductService.getProduct($scope.eanInput.ean)
        .then(function(product) {
            $scope.selectedProduct = product;
            $scope.selectedProduct.ean = $scope.eanInput.ean;
            $scope.selectedProduct.qtyInput = 1;
            $scope.focusOn = 'qty';
            $scope.products.push(product)


            $scope.eanInput.productFound = true;
        })
        .catch(function() {
            $scope.eanInput.productFound = false;
        });
    };

then in html you can do :

<div ng-controller="YourCtrl">
    <h1 ng-repeat="product in products">
    {{product.ean}}
    </h1>
</div>

Upvotes: 2

Related Questions