我有一个从数据库中获取数据的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上。我怎么可能这样做?
答案 0 :(得分:1)
视图方面ng-repeat
和filter
可以轻松满足要求,控制器端无需额外操作。
按照以下步骤操作:
在控制器中定义如下:
$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)