如何使用angularJS存储对象数组

时间:2016-05-26 01:39:48

标签: javascript angularjs mongodb

我在mongoDB中有一个对象的模式,我会在这个问题中调用我的对象CAR:

this.carroSchema = new Schema({
    modelo: String,
    ano: String,
    placa: String,
    cor: String,
    categoria: [{tipo: String, preco: String}],
    createdOn: {type: Date, default: Date.now}
});

我有这个函数来获取对象CAR并存储在数组' arrayCarros'

$scope.carregarCarros = function(){
    $http({
        method: 'GET',
        url: '/listaCarro'
    })
    .then(function successCallback(response){
        $scope.arrayCarros = response.data;
    }, function errorCallback(response){
        alert(response.data);   
    });
}

如果我做这样的选择:

<select class="form-control" ng-click = "carregarCarros()" name="select">
<option ng-repeat = "carros in arrayCarros">{{carros.placa}}</option>                       
</select>

我可以使用该物业&#39; placa&#39;从对象CAR,所以我可以在我的选择中显示值。

但是,我的问题是,我如何存储阵列&#39; categoria&#39;这是我的对象CAR内部,在其他数组中,所以我可以在我的选项中对他进行重复,并且可以访问他的属性,例如&#39; tipo&#39;和&#39; preco&#39;?

1 个答案:

答案 0 :(得分:0)

这是一种简单的方法。显然你总是可以使用像Array.filter或Array.reduce这样的内置javascript函数,具体取决于你的用例,但下面是一个简单易懂的解决方案。

$scope.other_array = [];

response.data.forEach(function(car){
   $scope.other_array.push(car.categoria)
})

console.log(other_array)

还应该注意,你可以有多个ng-repeats,只有一个渲染carros.place和一个渲染carros.categoria。那或者只是让两个vars在同一个ng-repeat中呈现。