我有一个 angularJS v1.5.11 应用, 但是当我想在表格中进行简单的ng-repeat时,我遇到了很大的问题,比如
<tbody>
<tr ng-repeat="score in data.result">
<td ng-repeat="item in score"> {{ item }} </td>
</tr>
</tbody>
我的代码在 angularJS v1.1.1 上运行正常, 希望您能够帮助我。 我在这里做了一个JSFiddle:https://jsfiddle.net/vpLj20w1/5/ 你可以在JSFiddle中更改AngularJS框架版本,以便在1.1.1上看到工作正常,但是在1.4.8及更高版本上没有工作..
最好的问候, 阿克塞尔。
答案 0 :(得分:2)
您需要告诉angularjs您的控制器是否存在。尝试声明模块并将控制器添加到模块:
<div ng-app="myApp">
<div ng-controller="scoreCtrl">
...
</div>
</div>
然后添加到您的javascript:
var app = angular.module("myApp", []);
app.controller("scoreCtrl", scoreCtrl);
现在它运行得比它好,但是你有ng-repeat="item in score"
的问题,因为angularjs需要一个唯一的键用于ng-repeat中使用的任何东西,你有重复的项目。
将内循环更改为:
<td ng-repeat="item in score track by $index"> {{ item }} </td>
现在你应该得到预期的输出。
顺便说一句,看看浏览器中的javascript控制台会帮助你:最初它抱怨它无法找到控制器功能,然后当我将它注入应用程序时,它抱怨转发器。答案 1 :(得分:0)
这是因为您尚未将控制器注入应用程序。我无法解释为什么你的例子适用于1.1.1,因为我只有1.4.x +的经验,但你需要使用模块控制器注入。
https://jsfiddle.net/vpLj20w1/7/
angular.module('app', [])
.controller('scoreCtrl', scoreCtrl);
并为您的ng-app命名(我使用了app
)