G.Smith
G.Smith

Reputation: 141

Angular pushing into array object

I am using an angular calendar and have some events like this :

$scope.events = [
        //{title: 'test event',start: moment()},
        {title: 'Long Event',start: new Date(y, m, d - 5),end: new Date(y, m, d - 2)},
        {id: 999,title: 'Repeating Event',start: new Date(y, m, d - 3, 16, 0),allDay: false},
        {id: 999,title: 'Repeating Event',start: new Date(y, m, d + 4, 16, 0),allDay: false},
        {title: 'Birthday Party',start: new Date(y, m, d + 1, 19, 0),end: new Date(y, m, d + 1, 22, 30),allDay: false},
        {title: 'Click for Google',start: new Date(y, m, 28),end: new Date(y, m, 29),url: 'http://google.com/'}
    ];

Is it possible to dynamically push into this so for example a button that could keep adding another event? i cant think of the syntax to push the object into array

Upvotes: 0

Views: 159

Answers (4)

Shashank
Shashank

Reputation: 2060

The push is as simple as 1-2-3. Please refer to the code snippet for pushing a new object into an existing AngularJS object below:

$scope.events.push(newData);

You can refer to the demo for full code.

Upvotes: 0

Suneet Bansal
Suneet Bansal

Reputation: 2702

We have .push() method in Array through it you can push elements to array.

Example:

$scope.events = [
        //{title: 'test event',start: moment()},
        {title: 'Long Event',start: new Date(y, m, d - 5),end: new Date(y, m, d - 2)},
        {id: 999,title: 'Repeating Event',start: new Date(y, m, d - 3, 16, 0),allDay: false},
        {id: 999,title: 'Repeating Event',start: new Date(y, m, d + 4, 16, 0),allDay: false},
        {title: 'Birthday Party',start: new Date(y, m, d + 1, 19, 0),end: new Date(y, m, d + 1, 22, 30),allDay: false},
        {title: 'Click for Google',start: new Date(y, m, 28),end: new Date(y, m, 29),url: 'http://google.com/'}
    ];


$scope.handleClick = function() {
    $scope.events.push({title: 'Click for XYZ',start: new Date(y, m, 28),end: new Date(y, m, 29),url: 'http://someurl'});   
}

Similarly to remove the elements from the array, we have pop() method provided.

Upvotes: 0

Rambler
Rambler

Reputation: 5482

Is this what you want :

$scope.events=[];
var event={title: 'Long Event',start: new Date(y, m, d - 5),end: new Date(y, m, d - 2)};
$scope.events.push(event);

Upvotes: 0

Jamiec
Jamiec

Reputation: 136074

This is just a javascript array, so you use push:

$scope.events.push({
    title:'foo'
});

Upvotes: 3

Related Questions