繁体   English   中英

AngularJS在$ scope数组上使用ng-repeat

[英]AngularJS using ng-repeat on a $scope array

我有一个控制器,通过Parse成功检索并将对象推送到数组上,如下所示:

var mySite = angular.module('mySite', []);

mySite.controller('listConnectors', ['$scope',
    function ($scope) {
        //Parse.initialize here;
        $scope.array = [];
        var TestObject = Parse.Object.extend("TestObject");
        var query = new Parse.Query(TestObject);
        query.find({
            success: function (results) {
                alert("Successfully retrieved " + results.length + " rows.");
                // Do something with the returned Parse.Object values
                for (var i = 0; i < results.length; i++) {
                    var object = results[i];
                    alert(object.id + ' - ' + object.get('foo') + " " + object.get('num'));

                    /***** Pushing onto array here *******/
                    $scope.array.push(object);

                }

                console.log($scope.array[0].attributes.foo); //Grabbed what was needed

            },
            error: function (error) {
                alert("Error: " + error.code + " " + error.message);
            }
        });
}]);

然后,我没有成功,尝试循环并列出数组中每个对象的“foo”值,如上面的console.log所示。 但是,没有输出任何内容。 就好像,ng-repeat没有被执行或输入:

    <li ng-repeat="eachElement in array">
    <a > {{eachElement.attributes.foo}}</a>
    </li>

任何帮助,将不胜感激。 谢谢!

我能够解决它。 感谢Jonathan Lonowski的评论和链接。

我不得不用$ apply将push压缩到数组上:

$scope.$apply(function(){
  $scope.array.push(object);
});

警报语句中和ng-repeat指令内的代码不匹配。 您的警报访问“x.id”,而您的dom绑定访问“x.attributes.id”。

如果您的警报显示预期结果,则应更改HTML,如下所示:

<li ng-repeat="eachElement in array">
<a > {{eachElement.id}}</a>
</li>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM