How to push object into an array using AngularJS
Push only work for array .
Make your arrayText
object to Array Object.
Try Like this
JS
this.arrayText = [{ text1: 'Hello', text2: 'world',}];this.addText = function(text) { this.arrayText.push(text);}this.form = { text1: '', text2: ''};
HTML
<div ng-controller="TestController as testCtrl"> <form ng-submit="addText(form)"> <input type="text" ng-model="form.text1" value="Lets go"> <input type="text" ng-model="form.text2" value="Lets go again"> <input type="submit" value="add"> </form></div>
Please check this - http://plnkr.co/edit/5Sx4k8tbWaO1qsdMEWYI?p=preview
Controller-
var app= angular.module('app', []);app.controller('TestController', function($scope) { this.arrayText = [{text:'Hello',},{text: 'world'}]; this.addText = function(text) { if(text) { var obj = { text: text }; this.arrayText.push(obj); this.myText = ''; console.log(this.arrayText); } } });
HTML
<form ng-controller="TestController as testCtrl" ng-submit="testCtrl.addText(testCtrl.myText)"> <input type="text" ng-model="testCtrl.myText" value="Lets go"> <button type="submit">Add</button> <div ng-repeat="item in testCtrl.arrayText"> <span>{{item}}</span> </div></form>
'Push' is for arrays.
You can do something like this:
app.js:
(function() {var app = angular.module('myApp', []); app.controller('myController', ['$scope', function($scope) { $scope.myText = "Let's go"; $scope.arrayText = [ 'Hello', 'world' ]; $scope.addText = function() { $scope.arrayText.push(this.myText); } }]);})();
index.html
<!doctype html><html ng-app="myApp"> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script> <script src="app.js"></script> </head> <body> <div> <form ng-controller="myController" ng-submit="addText()"> <input type="text" ng-model="myText" value="Lets go"> <input type="submit" id="submit"/> <pre>list={{arrayText}}</pre> </form> </div> </body></html>