繁体   English   中英

ng-repeat angularjs 1.5.11无法正常工作

[英]ng-repeat angularjs 1.5.11 not work

我有一个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和更高版本上则无法正常工作。

最好的问候,阿克塞尔。

您需要告诉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.1.1上可用,因为我只有1.4.x +的经验,但是您需要使用模块控制器注入。

https://jsfiddle.net/vpLj20w1/7/

angular.module('app', [])
  .controller('scoreCtrl', scoreCtrl);

并给您的ng-app命名(我用过app

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM