Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AngularJS push item to first or 0 index of $scope array

Please help me implement this function. I have an array of items in my $scope. Now, when I click on the Add Item button, I want to push a new item to the first index or 0 index of that array. Thanks in advance. :)

Here's a working jsFiddle to start with: http://jsfiddle.net/limeric29/7FH2e/

HTML:

<div ng-controller="Ctrl">
    {{data}}<br/>
    <input type="button" ng-click="addItem()" value="Add Item" />
</div>

JavaScript:

function Ctrl($scope) {
    $scope.data = [
    new String('Item 5'), new String('Item 4'), new String('Item 3'), new String('Item 2'), new String('Item 1')];

    $scope.addItem = function () {
        var c = $scope.data.length + 1;
        var item = new String('Item ' + c)
        $scope.data.push(item);
    };
}
like image 335
sharic19 Avatar asked Jul 24 '13 06:07

sharic19


3 Answers

You can use the unshift function.

function Ctrl($scope) {
$scope.data = [
new String('Item 5'), new String('Item 4'), new String('Item 3'), new String('Item 2'), new String('Item 1')];

$scope.addItem = function () {
    var item = new String('Item ' + c)
    $scope.data.unshift(item);
};
}
like image 84
Mit Mehta Avatar answered Nov 06 '22 14:11

Mit Mehta


Solved my problem by using splice() instead of push() and assigning to what array index to insert.

HTML:

<div ng-controller="Ctrl">
    <pre>{{data}}</pre><br/>
    <input type="button" ng-click="addItem()" value="Add Item" />
</div>

Javascript:

function Ctrl($scope) {
    $scope.data = [
    new String('Item 4'), new String('Item 3'), new String('Item 2'), new String('Item 1')];

    $scope.addItem = function () {
        var c = $scope.data.length + 1;
        var item = new String('Item ' + c)
        $scope.data.splice(0, 0, item);
    };
}

Here's the updated fiddle for this. http://jsfiddle.net/limeric29/xvHNe/

like image 25
sharic19 Avatar answered Nov 06 '22 15:11

sharic19


$scope.data.unshift(item);

One line, not sure why the others made it so difficult

like image 18
WtFudgE Avatar answered Nov 06 '22 14:11

WtFudgE