AngularJS ng-repeat in Drupal7 Dupes 错误

AngularJS ng-repeat in Drupal7 Dupes Error

下午好,

我在 Drupal7 中遇到 AngularJS (v1.3.15) 的恼人问题。 (注意:我刚刚提到 CMS 是完整的,但我不认为这是问题所在。)

我正在尝试在 div 上使用 ng-repeat,但我一直收到错误 -> Error: [ngRepeat:dupes] http://errors.angularjs.org/1.3.15/ngRepeat/dupes?p0=x in RESULTS&p1=string: ...

我已经编写了一个示例 jsfiddle,它模仿了我在 Drupal 7 模块中的实现,但是它按预期在 jsfiddle 上运行,请参阅以下内容 link: https://jsfiddle.net/angsar/n8e312wf/

它只是在模块中不起作用,具有相同的示例数据。 关于如何解决这个问题,或者至少找到真正的原因,有什么想法吗?

注意:我什至尝试过这里提到的 'track by' 子句:https://docs.angularjs.org/error/ngRepeat/dupes

'track by' 在 jsfiddle 中有效,但在 D7 模块中无效。模块中与 'track by' 的唯一区别是,控制台上不会显示任何错误,它不会打印出呈现的 angular 表达式,并且循环输出增加了三倍。 (例如:如果要从 ng-repeat 创建 2 divs,它将创建大约 6 个)。

谢谢。

我解决了。 我在 D7 模块的 JavaScript 文件中犯了一个非常愚蠢的错误。

(注意:参考上面的JSFiddle了解变量及其数据)

我的错误是这样的; $scope.DATA = $filter('json')(data); 它分配 'string' 而不是 'JSON object',因此 'ng-repeat' 会在迭代时选择一个字符数组,导致重复错误,因此它解释了为什么当我尝试 'track by',为什么我不能让表达式工作(仅仅是因为对象不存在),以及 div 的三倍等,是因为它是一个逐字符评估的字符串。

注意:'data' 来自 AngularJS 中的 AJAX 回调。