获取控制器

时间:2018-03-13 05:12:38

标签: javascript html arrays angularjs

我有一个从数据库中获取数据的API。我得到的样本数据如下:

 [
    {
        "Name": "Bar1",
        "Type": "Bar",
    },
    {
        "Name": "Pie1",
        "Type": "Pie",
    },
    {
        "Name": "Pie2",
        "Type": "Pie",
    },
    {
        "Name": "Line1",
        "Type": "Line",
    },
    {
        "Name": "Pie3",
        "Type": "Pie",
    },

]

我想获取属于type = Pie的所有名称,并将其分配到$ scope数组,然后将其放在ng-repeat上。我怎么可能这样做?

2 个答案:

答案 0 :(得分:1)

视图方面ng-repeatfilter可以轻松满足要求,控制器端无需额外操作。

按照以下步骤操作:

在控制器中定义如下:

$scope.items = [{
        "Name": "Bar1",
        "Type": "Bar",
    },
    {
        "Name": "Pie1",
        "Type": "Pie",
    },
    {
        "Name": "Pie2",
        "Type": "Pie",
    },
    {
        "Name": "Line1",
        "Type": "Line",
    },
    {
        "Name": "Pie3",
        "Type": "Pie",
    },

];

请在Html中使用以下内容:

<div ng-controller = "YOUR_CONTROLLER">
    <div ng-repeat="item in items | filter: { type: 'pie'}">
<div>

答案 1 :(得分:0)

要仅获取名称数组,请检查此项。您可以进一步将此数组分配给$ scope变量并在ng-repeat

中使用

首先使用过滤器来获取过滤后的数据,然后从中选择名称。

let data = [
    {
        "Name": "Bar1",
        "Type": "Bar",
    },
    {
        "Name": "Pie1",
        "Type": "Pie",
    },
    {
        "Name": "Pie2",
        "Type": "Pie",
    },
    {
        "Name": "Line1",
        "Type": "Line",
    },
    {
        "Name": "Pie3",
        "Type": "Pie",
    },

]

let names = data.filter(d => d.Type === 'Pie').map(m => m.Name)

console.log(names)