【发布时间】:2015-07-09 07:08:38
【问题描述】:
我正在查看AngularJS 中的forEach loop。有几点我不明白。
- 迭代器函数有什么用?没有它有什么办法吗?
- 如下图key和value的意义是什么?
angular.forEach($scope.data, function(value, key){});
PS:我尝试在没有参数的情况下运行此函数,但它不起作用。
这是我的json:
[
{
"Name": "Thomas",
"Password": "thomasTheKing"
},
{
"Name": "Linda",
"Password": "lindatheQueen"
}
]
我的JavaScript 文件:
var app = angular.module('testModule', []);
app.controller('testController', function($scope, $http){
$http.get('Data/info.json').then(
function(data){
$scope.data = data;
}
);
angular.forEach($scope.data, function(value, key){
if(value.Password == "thomasTheKing")
console.log("username is thomas");
});
});
另一个问题:为什么上面的函数在if条件下没有进入并在控制台打印“username is thomas”?
【问题讨论】:
-
因为您没有等待
$http.get()发生success,因此,当angular.forEach()发生时,$scope.data仍然未定义。 -
是否有任何特定的方法来保持代码的执行直到 json 被加载
-
换行成这个 angular.forEach(values, function(value, key){ console.log(key + ': ' + value.Name); });