How to add the rows dynamically with angularjs?

16,169

You have to actually push the entered input values into the rows array:

$scope.row.push({
    firstName: $scope.firstName,
    lastName: $scope.lastName
});

I'd update the html to read:

<a href="#" class="button" ng-click="addRow()">Add Row</a>
First Name : <input ng-model="firstName" required>
Last Name : <input ng-model="lastName" required>

And then:

<tr ng-repeat="rowContent in rows">
  <td>{{rowContent.firstName}}</td>
  <td>{{rowContent.lastName}}</td>
</tr>

Make sure angular is included properly and your controller is being used the right way too.

Share:
16,169
Idris
Author by

Idris

Failure is not worst, The worst thing is not 2 try............

Updated on June 13, 2022

Comments

  • Idris
    Idris almost 2 years

    I used the code to add the row and 2 columns by clicking the add rows. "My need is", First fill the values in the input field, after that click the Add item button, the values must be shown in table structure. Am the beginneer. Cant able to use the for loop. Can anyone please solve this issue.

    try the code : https://jsfiddle.net/idris9791_/a7L832LL/

      <html >
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
    
        <title>Add Rows</title>
    
    
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
    
      <body ng-controller="MainController" ng-app="MyApp">
    
        <a href="#" class="button" ng-click="addRow()">Add Row</a>
        <form>
        First Name : <input name="myInput" ng-model="user.firstName" required>
        First Name : <input name="myInput" ng-model="user.lastName" required>
        </form>
    
    
    <table>
      <thead>
        <tr>
          <th>Some Header</th>
        </tr>
      </thead>
      <tbody>
       <tr ng-repeat="rowContent in rows">
      <td>{{rowContent.firstName}}</td>
      <td>{{rowContent.lastName}}</td>
    </tr>
      </tbody>
    </table>    
    <script>
    angular.module('MyApp', [])
    .controller('MainController', [ '$scope', function($scope) {
    
      $scope.rows = [];
    
      $scope.counter = 0;
    
      $scope.addRow = function() {
    
        $scope.row.push({
        firstName: $scope.firstName,
        lastName: $scope.lastName
    });
    
        $scope.counter++;
    
      }
    }]);
    </script>
    
      </body>
    </html>