找到 JSON 数组的特定部分,然后在 Angular 中更深入

finding a specific part of the json array and then going deeper in angular

本文关键字:Angular 然后 数组 JSON 定部 找到      更新时间:2023-09-26
对于

措辞不佳的问题,我正在为这个问题的逻辑而苦苦挣扎。

我有以下 JSON 数组:

{
    "status": {
        "available": [
            { 
                "title": "Currently available for contracts" ,
                "dateAvailable": null,
                "company": null
            }
        ],
        "on-assignment": [
            { 
                "title": "Currently Unavailable" ,
                "dateAvailable": "2015-03-25",
                "company": "BBQ Digital"
            }
        ],
        "on-holiday": [
            { 
                "title": "Currently on holiday" ,
                "dateAvailable": null,
                "company": null
            }
        ]
    }
}

与以下控制器配合使用:

.controller('statusCtrl', function($scope, $http) {
        $scope.astatus = [];
        $http.get('app/model/status.json')
            .success( function(response) {
                $scope.astatus = response;
            })
            .error( function(err) {
                alert(err);
            });
    })

使用 AngularJS (v1.3.14) 我想检查一个变量以查看我是否"有空"、"在分配"或"在假期",并显示正确状态部分的"标题"、"可用日期"和"公司"属性。以类似于这样的方式(请原谅伪代码):

    <div class="cta">
        // display the correct title
        {{ status.[next level].title }}
        if (on-assignment) {
            <span>Currently working for:</span>
            {{ status.[next level].company}}
            <span>I will be available on:</span>
            {{ status.[next level].dateAvailable}}
        }
        <a href="#contact" class="button">Get in touch</a>
    </div>

我已经在模板中包含伪代码以明确我所追求的内容,但是如果可能的话,我希望此逻辑在控制器中。

我是一个很好的JavaScript/jQuery开发人员,但是我对JSON的经验仅限于更简单的东西,而且我是AngularJS的初学者,所以请在您的答案中记住这一点。

注意:正如我试图学习的那样,解释您的答案将非常有帮助。

你可以在这里使用 Angular JS 过滤器。

{{ filter_expression | yourArray : {status: 'on-assignment'} : true}}

这应该只返回"分配中"的内容。