Angular JS:如何通过读取JSON数组动态创建数组

时间:2017-04-26 16:56:52

标签: angularjs

我有一个JSON,如下所示

[
        {
                "id": 1000,
                "name": "Open"
        },
        {
                "id": 1000,
                "name": "Ravi"
        },
        {
                "id": 1000,
                "name": "POOO"
        }]

    On click of a button I am trying to create a Array by reading all the names from the Array 

    I have tried as follwoing 

        var myapp = angular.module('myapp', []);
myapp.controller('FirstCtrl', function($scope)
{
        $scope.formData = function()
        {
                var aa = $scope.tickets.length;
                $scope.products = $scope.tickets.name;
                alert($scope.products);
        };
        $scope.tickets = [
        {
                "id": 1000,
                "name": "Open"
        },
        {
                "id": 1000,
                "name": "Ravi"
        },
        {
                "id": 1000,
                "name": "POOO"
        }]
});

目前我未定义,请您告诉我如何做到这一点 提前致谢

http://jsfiddle.net/9fR23/434/

我不想使用for循环阅读传统风格。

请你建议一个专业的方法。

2 个答案:

答案 0 :(得分:1)

如果您不想使用循环阅读,那么您可以使用Underscore.js

使用Underscore.js,您可以执行以下操作。在此之前,您需要检查this link如何在角度控制器内使用下划线。

var result = _.map([{ id: 1, name: "vinit"},{ id: 2, name: "jaimin"}], function (v) {
    return v.name;
});

alert(JSON.stringify(result));

jsfilddle

答案 1 :(得分:0)

您可以循环读取数组中的所有数据并将它们推送到新数组:

$scope.formData = function()
{
    $scope.products = [];
    var aa = $scope.tickets.length;
    angular.forEach($scope.tickets, function(value, key) {
        $scope.products.push(value.name);
    });
    alert($scope.products);
};

Updated fiddle