修复AngularJS 1.2.0 [$ parse:isecprv]错误

时间:2013-11-11 22:47:33

标签: javascript mongodb angularjs couchdb

AngularJS 1.2.0刚刚发布,CounchDBMongoDB用户即时出现问题:

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

 Error: [$parse:isecprv]

有关于此here on the docs的讨论。

有没有办法禁用这个'功能',还是克服它?

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:2)

看起来我们需要等到1.2.1被释放。

2013年11月13日 Vojta关于此“功能”the following说:

  

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

     

我们将在下一个版本中发布1.2.1(将包含此“修复”)   天。

     

这个问题的主要结果是:我们不应该破坏   转变为RC。经验教训。

更新 - 2013年11月15日: AngularJS 1.2.1 underscore-empathy reverts hiding "private" properties

  

我们介绍了“私人”属性(对于以。开头的属性)   在1.2中认为这是公平的   没有争议的变化。哎呀!道歉(谢谢)给大家们   谁提出了错误警告我们你的代码中的更大后果   做出这种突破性变化。我们已经恢复了这个功能。