You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS新手求助:使用ng-repeat和ng-init遍历JSON数组失败

解决你的AngularJS ng-repeat遍历问题

嘿,刚接触AngularJS遇到这种小bug太正常啦!我帮你找出问题所在了,咱们一步步来:

问题根源:变量名大小写不匹配

AngularJS对变量名是区分大小写的!你在ng-init里定义的数组变量是myFavLan(最后一个字母L是大写),但在ng-repeat里写成了myFavlan(最后一个L是小写),这就导致Angular找不到对应的变量,自然没法渲染内容啦。

修正后的完整代码

<!DOCTYPE html>
<html ng-app="">
<head>
<title>AngularJS ng-repeat Demo</title>
</head>
<body>
<h1>ng-repeat Demo</h1>
<hr />
<div ng-init="myFavLan=[{name:'PHP',extension:'.php'}, {name:'Javascript',extension:'.js'}, {name:'HTML',extension:'.html'} ]">
  <p ng-repeat="language in myFavLan"> 
    Name : {{ language.name }} <br /> 
    Extension : {{ language.extension }} 
  </p>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
</body>
</html>

额外小建议(可选)

虽然用ng-init能快速测试,但在实际项目里更推荐把数据放在控制器里,这样代码更清晰易维护。比如可以改成这样:

<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>AngularJS ng-repeat Demo</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.myFavLan = [
    {name:'PHP',extension:'.php'}, 
    {name:'Javascript',extension:'.js'}, 
    {name:'HTML',extension:'.html'}
  ];
});
</script>
</head>
<body ng-controller="myCtrl">
<h1>ng-repeat Demo</h1>
<hr />
<p ng-repeat="language in myFavLan"> 
  Name : {{ language.name }} <br /> 
  Extension : {{ language.extension }} 
</p>
</body>
</html>

这样结构更符合AngularJS的最佳实践,也方便后续扩展功能哦~

内容的提问来源于stack exchange,提问作者R K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:38:35