Angularjs json data

Angularjs json data

本文关键字:data json Angularjs      更新时间:2023-09-26

一直在寻找如何解决这个问题的线索。

得到一个json文档,其中包含三个包含数据数组的对象。像这样查看它们:

<tr data-ng-repeat="x in data.Country
                        | filter:{Continent:ContinentValue}
                        | filter:{GovernmentForm:govForm}
                        | filter:{Name:countName}
                        | orderBy:orderProperty"
                        data-ng-if="x.Population >= popValueMax && x.Population <= popValueMin">
        <td><a href="#/{{ x.Code }}">{{x.Name }}</td>
        <td>{{x.Population}}</td>
        <td>{{x.LifeExpectancy}}</td>
        <td>{{x.GovernmentForm }}</td>
        <td>{{x.HeadOfState }}</td>
    </tr>
</table>

也在另一个视图中使用它们:

<ul >
<li>Local name: {{x.LocalName}}</li>
<li>Continent: {{x.Continent}}</li>
<li>Region: {{x.Region}}</li>
<li>Surface area: {{x.SurfaceArea}}</li>
<li>Population: {{x.Population}}</li>
<li>Gross National Product(GNP): {{x.GNP}}</li>
<li>Government form: {{x.GovernmentForm}}</li>
<li>Head of state: {{x.HeadOfState}}</li>
<li>Capital: {{}}</li>
<li>Official language: {{}}</li>
<li>{{}}</li>

在第二个例子中,大写是对象a中的一个数字,即X,但大写的名称是对象B中的一个数字,其中a中的大写数字是对象B中的城市ID。

获取html文档之间的数据:

controllers.controller("details", ["$scope", "$routeParams", "$filter",
function($scope, $routeParams, $filter) {
$scope.x = $filter("filter")($scope.data.Country,
{Code: $routeParams.CodeId})[0];
}]);

关于如何从对象B获得名称(字符串)到<li>Capital: {{}}</li的任何想法?

假设对象B看起来像

[{id:1, name:'One'}, {id:2, name:'Two'}]

你可以过滤表达式中的对象,然后取第一个过滤对象的名称。

<li>Capital: {{(objectB|filter:{id: x.Capital})[0].name}}</li>

如果您需要使用objectB上的更多属性,您可以将过滤的属性设置为变量并重用它

<li>Capital: {{(capitalObj = (objectB|filter:{id: x.Capital})[0]).name}}</li>
<li>Other Prop: {{capitalObj.other}}</li>