Ответ 1
У меня была некоторая ошибка, в то время как я используется ng-click
<a ng-click="#/search/San+Francisco">test</a>
вместо ng-href
<a ng-href="#/search/San+Francisco">test</a>
Надеюсь, это поможет
Я написал приложение angular, используя генератор йома. Он отлично работает в разработке, но после того, как я развернусь на геройку и нахожусь на определенной странице, я получаю эту ошибку:
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)
В этом описании говорится, что ошибка возникает, когда выражение имеет лексическую ошибку.
Что это и почему это только появляется в производстве?
У меня была некоторая ошибка, в то время как я используется ng-click
<a ng-click="#/search/San+Francisco">test</a>
вместо ng-href
<a ng-href="#/search/San+Francisco">test</a>
Надеюсь, это поможет
Если вы используете ng-pattern = '/some_reg_ex/'. Сохраните его в некоторой переменной области, скажем $scope.emailPattern = '/email_regex/'
В моем случае это было вызвано тем, что регулярное выражение не было заключено в /
, т.е. ng-pattern="^[0-9]$"
вместо ng-pattern="/^[0-9]$/"
.
В общем случае это происходит, когда вы предоставляете строковый литерал, когда angular ожидает выражение или функцию. "#" В строке вызывает ошибку $parse:lexerr
.
В моем случае я устанавливал строковый литерал в атрибут custom Directive, когда я должен был использовать выражение.
Некорректное
<my-directive my-attr="/foo#bar"></my-directive>
Правильно
<my-directive my-attr="'/foo#bar'"></my-directive>
В этом примере атрибут my-attr
был установлен для двусторонней привязки (=) в пользовательском my-directive
. Если он был установлен на "@", ошибка не возникла бы.
scope: {
my-attr: "="
}
@russenreaktor прав, но, более конкретно, эта ошибка возникает при использовании неправильного синтаксиса. Для меня я случайно потерял символ $
, используемый в angular, с #
, используемый в дескрипторах:
<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>
У меня возникла проблема с ng-click.
ng-click="#"
Я просто удалил его, и ошибка исчезла.
В моем случае было ng-шоу, имеющее #
Плохо:
<a ng-show='#'>
Бест.
Когда мое значение модели surveyCtrl.user.googleEmail
равно [email protected]
, я получил эту ошибку при использовании:
ng-disabled="{{surveyCtrl.user.googleEmail}}"
Условие работает:
ng-disabled="{{surveyCtrl.user.googleEmail != ''}}"