3

AngularJS 1.2.0 刚刚发布,对于用户来说有一个即时CounchDB问题MongoDB

当尝试访问一些带有下划线的 JSON 数据时,例如{{data._id}}Angular 1.2.0 会出现以下错误:

 Error: [$parse:isecprv]

在 docs 上有关于此的讨论。

有没有办法禁用这个“功能”,或者克服它?

4

2 回答 2

4

要在 1.2.0 中禁用此“功能”,请注释掉第 9097 到 9101 行。这 5 行负责Error: [$parse:isecprv]

if (name.charAt(0) === '_' || name.charAt(name.length-1) === '_') {
throw $parseMinErr('isecprv',
    'Referencing private fields in Angular expressions is disallowed! Expression: {0}',
    fullExpression);
}
于 2013-11-13T01:01:49.253 回答
2

看起来我们需要等到 1.2.1 发布。

2013 年 11 月 13 日 Vojta对这个“功能”发表了以下看法:

伙计们,对于这个变化造成的麻烦,我们深表歉意。这个“功能”主要是为使用 Closure 编译器和 Google JS 风格的人准备的,但我没有意识到很多人都依赖于访问模板中的 _* 属性。现在我们正在恢复该更改(4ab16aa)。

我们将在接下来的几天内发布 1.2.1(其中将包含此“修复”)。

这个问题的主要结果是:我们不应该对 RC 进行任何重大更改。学过的知识。

更新 - 2013 年 11 月 15 日: AngularJS 1.2.1 underscore-empathy 恢复隐藏“私有”属性

我们在 1.2 中引入了“私有”属性(用于以下划线开头的属性),认为这将是一个没有争议的变化。哎呀!向提交错误提醒我们进行此重大更改的代码中的更大后果的人道歉(并感谢您)。我们已恢复此功能。

于 2013-11-14T17:09:10.817 回答