To achieve this, create a new scope variable with an empty array type and push the value on button click. In the example below, I have used a text input and a button for demonstration purposes. Feel free to customize it according to your needs. Here is the code snippet:
HTML:
<head>
<link rel="stylesheet" href="style.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<div ng-app="sampleApp">
<div ng-controller="myController">
<input ng-model="newItem" type="text" />
<button ng-click="add(newItem)">Add</button>
<div ng-repeat="arr in child">
{{arr}}
</div>
<div ng-repeat="arr in tempchild track by $index">
{{arr}}
</div>
</div>
</div>
</body>
</html>
JS:
(function(angular){
var module = angular.module("sampleApp",[])
.controller("myController", ["$scope", function($scope){
$scope.child = ['A', 'B' , 'C', 'D'];
$scope.tempchild = [];
$scope.add = function(item) {
$scope.tempchild.push(item);
};
}]);
})(window.angular);
In the code above, be sure to include another ng-repeat that iterates through the new $scope variable.
For a complete example, check out this link