我使用yeoman发生器写了一个角度应用程序。它在开发中运行良好,但在我部署到heroku并访问特定页面后,我收到此错误:
Error: [$parse:lexerr] Lexer Error: Unexpected next character at columns 0-0 [\] in expression [\].
http://errors.angularjs.org/1.2.6/$parse/lexerr?p0=Unexpected%20nextharacter%20&p1=s%200-0%20%5B%5C%5D&p2=%5C
at http://ang-news.herokuapp.com/scripts/244c37f5.vendor.js:3:30474
at Zd.throwError (http://ang-news.herokuapp.com/scripts/244c37f5.vendor.js:6:14396)
at Zd.lex (http://ang-news.herokuapp.com/scripts/244c37f5.vendor.js:6:13696)
at $d.parse (http://ang-news.herokuapp.com/scripts/244c37f5.vendor.js:6:16445)
at http://ang-news.herokuapp.com/scripts/244c37f5.vendor.js:5:13197
at e.parseAs (http://ang-news.herokuapp.com/scripts/244c37f5.vendor.js:5:23401)
at Object.e.(anonymous function) [as parseAsResourceUrl] (http://ang-news.herokuapp.com/scripts/244c37f5.vendor.js:5:23604)
at http://ang-news.herokuapp.com/scripts/244c37f5.vendor.js:6:28873
at q (http://ang-news.herokuapp.com/scripts/244c37f5.vendor.js:4:23046)
at h (http://ang-news.herokuapp.com/scripts/244c37f5.vendor.js:4:19250)
This description表示当表达式出现词汇错误时会发生错误。
这是什么,为什么它只出现在生产中?
答案 0 :(得分:32)
我有些错误 使用 ng-click
<a ng-click="#/search/San+Francisco">test</a>
而不是 ng-href
<a ng-href="#/search/San+Francisco">test</a>
我希望它可以提供帮助
答案 1 :(得分:21)
如果您使用的是ng-pattern =&#39; / some_reg_ex /&#39;。请将其保存在某个范围变量中,例如$scope.emailPattern = '/email_regex/'
答案 2 :(得分:16)
在我的情况下,这是由正则表达式未被/
括起来引起的,即。 ng-pattern="^[0-9]$"
代替ng-pattern="/^[0-9]$/"
。
答案 3 :(得分:15)
通常,当在角度期待表达式或函数时提供字符串文字时,会发生这种情况。 A&#34;#&#34;在字符串中导致$parse:lexerr
错误。
就我而言,当我应该使用表达式时,我正在将字符串文字设置为自定义指令属性。
<强>不正确强>:
<my-directive my-attr="/foo#bar"></my-directive>
<强>正确强>:
<my-directive my-attr="'/foo#bar'"></my-directive>
在此示例中,my-attr
属性已设置为自定义my-directive
中的双向绑定(=)。如果设置为&#34; @&#34;错误不会发生。
scope: {
my-attr: "="
}
答案 4 :(得分:3)
@russenreaktor是对的,但更具体地说,当您使用不正确的语法时会发生此错误。对我来说,我不小心错位了$
字符,用于角色,用#
用于把手:
<button class="danger" type="button" title="Remove Property Asset {{#index}}">Remove Asset</button>
当然,修复#
字符解决了我的问题:
<button class="danger" type="button" title="Remove Property Asset {{$index}}">Remove Asset</button>
答案 5 :(得分:2)
我遇到了ng-click问题。
ng-click="#"
我刚删除它,错误就消失了。
答案 6 :(得分:1)
在我的情况下是一个有#
的ng-show为:
<a ng-show='#'>
最佳。
答案 7 :(得分:1)
作为字符串传递的参数不是有效的文字字符串:
ng-init('[aa]')
而不是
ng-init([aa])
答案 8 :(得分:1)
我使用
出现错误<div ng-bind="{{vm.myModel}}"></div>
通过去除胡须来修复它:
<div ng-bind="vm.myModel"></div>
答案 9 :(得分:0)
当我的模型值surveyCtrl.user.googleEmail
为someone@gmail.com
时,我在使用时遇到此错误:
ng-disabled="{{surveyCtrl.user.googleEmail}}"
条件有效:
ng-disabled="{{surveyCtrl.user.googleEmail != ''}}"
答案 10 :(得分:0)
在将选择选项与ng-value一起使用时出现此错误,因此我只保留value而不是ng-value属性。
<select>
<option ng-repeat="employee in employees"
title="{{employee.fullName}}"
value="{{employee.email}}">
{{employee.email}}
</option>
</select>