Pathik Vejani
Pathik Vejani

Reputation: 4491

ng-click show data in angular js

I want to show data using ng-click

First i have listing for of all the companies, this works fine. it displays all the companies.:

<div class="col-xs-3" ng-repeat="item in companyData"> 
   <a ng-click="getPackageInfo({id:item.iCompanyID})" class="block panel padder-v bg-primary item">
   <span class="text-white block">{{item.vCompanyName}}</span>
   </a>
</div>

Now on click of company name, i have to display other info like packges of that company, for that i have done this under above div:

<div ng-repeat="item in pData" class="col-xs-3">
        <a ng-click="" class="block panel padder-v bg-primary item">
               <span class="text-white block">{{item.vPackageName}}</span>
        </a>
</div>

In controller.js i did this, getPackageInDetail will return package listing according to company id:

    function getPackageInfo(id) {
        SubscriptionoptioncompanylistFactory.getPackageInDetail(id).
        success(function(data) {
            $scope.pData = data;
        }).
        error(function(data,status,header,config) {
            $scope.pData = 0;
        });
};

How can i append the data according to company clicked?

Upvotes: 0

Views: 426

Answers (1)

Satpal
Satpal

Reputation: 133403

Array.prototype.push.apply() can be used for merging two arrays.

Merge the second array into the first one

//Define an empty array 
$scope.pData = [];

$scope.getPackageInfo = function(id) {
    SubscriptionoptioncompanylistFactory.getPackageInDetail(id).
    success(function(data) {
        Array.prototype.push.apply($scope.pData, data); //Merge the array
    });
};

Additionally, I think you need to pass ID properly

<a ng-click="getPackageInfo(item.iCompanyID)">

Upvotes: 1

Related Questions