【问题标题】:Get name per specified type in controller获取控制器中每个指定类型的名称
【发布时间】:2018-08-21 06:27:55
【问题描述】:

我有一个从数据库获取数据的 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 上。我怎么可能做到这一点?

【问题讨论】:

    标签: javascript html arrays angularjs


    【解决方案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>
    

    【讨论】:

      【解决方案2】:

      要仅获取名称数组,请选中此项。您可以进一步将此数组分配给 $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)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-01
        • 2010-12-30
        • 1970-01-01
        • 1970-01-01
        • 2020-01-04
        • 1970-01-01
        • 1970-01-01
        • 2012-02-06
        相关资源
        最近更新 更多