我有一个控制器,通过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>
任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
我能够解决它。感谢Jonathan Lonowski的评论和链接。
我不得不用$ apply:
将push压缩到数组上$scope.$apply(function(){
$scope.array.push(object);
});
答案 1 :(得分:1)
警报语句中和ng-repeat指令内的代码不匹配。您的提醒访问&#34; x.id&#34;而你的dom绑定访问&#34; x.attributes.id&#34;。
如果您的提醒显示预期结果,则应更改HTML,如下所示:
<li ng-repeat="eachElement in array">
<a > {{eachElement.id}}</a>
</li>