Подтвердить что ты не робот

'Ошибка: [$ parse: lexerr] Ошибка Lexer: неожиданный следующий символ' на развертывании героку

Я написал приложение 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) 

В этом описании говорится, что ошибка возникает, когда выражение имеет лексическую ошибку.

Что это и почему это только появляется в производстве?

4b9b3361

Ответ 1

У меня была некоторая ошибка, в то время как я используется ng-click

<a ng-click="#/search/San+Francisco">test</a>

вместо ng-href

<a ng-href="#/search/San+Francisco">test</a>

Надеюсь, это поможет

Ответ 2

Если вы используете ng-pattern = '/some_reg_ex/'. Сохраните его в некоторой переменной области, скажем $scope.emailPattern = '/email_regex/'

Ответ 3

В моем случае это было вызвано тем, что регулярное выражение не было заключено в /, т.е. ng-pattern="^[0-9]$" вместо ng-pattern="/^[0-9]$/".

Ответ 4

В общем случае это происходит, когда вы предоставляете строковый литерал, когда 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: "="
}

Ответ 5

@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>

Ответ 6

У меня возникла проблема с ng-click.

ng-click="#"

Я просто удалил его, и ошибка исчезла.

Ответ 7

В моем случае было ng-шоу, имеющее #

Плохо:

<a ng-show='#'>

Бест.

Ответ 8

Когда мое значение модели surveyCtrl.user.googleEmail равно [email protected], я получил эту ошибку при использовании:

ng-disabled="{{surveyCtrl.user.googleEmail}}"

Условие работает:

ng-disabled="{{surveyCtrl.user.googleEmail != ''}}"