如何通过Array中的属性获取特定对象?

时间:2016-03-05 18:07:20

标签: angularjs angularjs-scope

我需要从Array中获取具有特殊属性“type”的对象。我要分配给范围的这些对象。我怎么能这样做?

以下方法对我没有用。

$scope.vendors = {}
$scope.clients = {}

$scope.loadCounterparties = function() {
  Counterpartie.query(function(response) {

    $scope.vendors = response.type.Vendor;
    $scope.clients = response.type.Client

  });
};

响应对象看起来像这样

enter image description here

提前致谢!

2 个答案:

答案 0 :(得分:1)

Angular并没有专门为此做些什么。您需要通过普通的java脚本过滤数组。但是,您可以尝试使用3rd party library by the name underscore.js. 它添加了许多有用的功能,如"其中":

_。where(list,properties) 查看列表中的每个值,返回包含属性中列出的所有键值对的所有值的数组。

  

_。where(listOfPlays,{作者:"莎士比亚"年份:1611});   => [{title:" Cymbeline",作者:"莎士比亚",年份:1611},       {标题:"暴风雨",作者:"莎士比亚",年份:1611}]

这是图书馆页面的链接 http://underscorejs.org/#where

答案 1 :(得分:1)

可以使用angular forEach但我会使用lodash

// assuming one array and two search arguments i.e. client and vendor  
var data = response;
$scope.loadCounterparties = _.filter(data, {type: 'Vendor', type:     'Client'});