我现在一直在搞乱一些代码约5个小时而且无处可去。我真的很沮丧,所以我想我会请求一些帮助。
我正在使用MEAN.JS框架,我正在构建一个前端控制器,用于循环遍历消息数组,构建一个可供视图使用的新用户名数组。
问题是任何类型的循环似乎都不起作用。我的意思是......我做了一个基本的:
var test = "x";
for(i = 0; i < 5; i++)
{
test += "o";
}
它最终只是“x”
以下是代码的基本要点:
angular.module('core03-messages').controller('MessagesController', ['$scope', '$rootScope', '$http',
function($scope, $rootScope, $http) {
$http({method: 'GET', url: '/messages/'}).
success(function(data) {
//any sort of loop here
//all the closing brackets and such
知道为什么任何类型的for循环在那里不起作用?或者我是如何解决这种限制的?
非常感谢任何帮助,不能使用循环非常令人沮丧。
编辑:完整背景下的代码
'use strict';
angular.module('core03-messages').controller('MessagesController', ['$scope', '$rootScope', '$http',
function($scope, $rootScope, $http) {
$rootScope.loadAction = 'messages';
//get user data
$http({method: 'GET', url: '/users/me'}).
success(function(data) {
$scope.user = data;
$scope.profile_details = $scope.user.profile_details[0];
$http({method: 'GET', url: '/messages/' + $scope.user.username}).
success(function(data) {
$scope.messages = data;
$scope.threadedUsers = new Array();
// This does not work...I have no idea why ///////
for(i = 0; i < 5; i++)
{
$scope.threadedUsers[i] = "TEST USER";
}
//////////////////////////////////////////////////
// The line below actually works if uncommented
//$scope.threadedUsers.push("TEST USER");
}).
error(function(data) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
}).
error(function(data) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
}]);
解决:显然这是ng-repeat的一个问题。由于某种原因,ng-repeat在填充循环时不喜欢字符串数组。修改了代码以发送带有数组内部的JSON对象,并且它开始完美运行。