从Angular Scope中的Array获取所有对象

时间:2016-04-19 22:54:49

标签: javascript jquery arrays angularjs scope

我试图从角度范围内获取数组中的所有对象。我使用jQuery来获取数组,但我不知道如何从数组中获取每个对象而不必像[0]那样定义它。

angular.element("#scopes").scope().fixtures;

这给了我:

Array[380]

然后我可以从中选择,但我需要一次性完成它们。

感谢。

2 个答案:

答案 0 :(得分:1)

编辑:这是我实施此解决方案的方法。请注意,它不再使用任何jQuery。它从API检索数据,然后遍历数组中的每个项目,允许您使用它执行所需的操作。 angular.forEach Docs

// In your angular controller...
$http({
    url: "myApiUrl",
    method: "GET",
    cache: false,
    params: {
        //whatever API params you want to pass
    }
}).then(function successCallback(response) {
    $scope.fixtures = response.data;
    $scope.fixtures.forEach(function (element, index) {
        // do what you want - as per your comments...
        console.log("Element: " + index);
        console.log("Status: " + element.status);
        console.log("________________________________");
    });

}, function failureCallback() {
    alert("There was an error retrieving the data!");
});

答案 1 :(得分:1)

要回答您的具体问题,听起来您想映射结果:

var statuses = angular.element("#scopes").scope().fixtures.map(function(fixture) {
    return fixture.status;
});

然而,感觉您应该能够从模型中获取此数据,而不是试图将其从您的视图中拉出来。