code

'오류: [$parse:lexerr] 렉서 오류:heroku 전개 시 예기치 않은 다음 캐릭터'

starcafe 2023. 2. 16. 21:56
반응형

'오류: [$parse:lexerr] 렉서 오류:heroku 전개 시 예기치 않은 다음 캐릭터'

yoman generator를 사용하여 각진 앱을 만들었습니다.개발에서는 매우 효과가 있습니다만, 헤로쿠에 전개하고 특정 페이지를 방문하면 다음과 같은 에러가 발생합니다.

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/'

일반적으로 이 문제는 angular가 식 또는 함수를 예상하고 있을문자열 리터럴을 제공할 때 발생합니다.문자열에 "#"이 있으면$parse:lexerr에러입니다.

이 경우 식을 사용해야 할 때 문자열 리터럴을 커스텀 디렉티브 속성으로 설정하고 있었습니다.

틀렸다:

<my-directive my-attr="/foo#bar"></my-directive>

정답:

<my-directive my-attr="'/foo#bar'"></my-directive>

이 예에서는my-attr사용자 지정에서 양방향 바인딩(=)에 대해 특성이 설정되었습니다.my-directive@로 설정되어 있으면 에러는 발생하지 않습니다.

scope: {
  my-attr: "="
}

나의 경우, 이것은 정규 표현이 에워싸여지지 않았기 때문에 일어났다./즉,ng-pattern="^[0-9]$"대신ng-pattern="/^[0-9]$/".

@secenreaktor가 옳습니다만, 보다 구체적으로 말하면, 이 에러는 잘못된 구문을 사용하는 경우에 발생합니다.제 경우, 제가 실수로 다른 곳에 있는$문자, 각도에서 사용, 와 함께#, 핸들 바에서 사용:

<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-init('[aa]')

대신

ng-init([aa])

제 경우엔 엔지쇼에서 #가 나왔는데

불량:

<a ng-show='#'>

최고입니다.

모델 가치가surveyCtrl.user.googleEmailsomeone@gmail.com, 사용시에 다음의 에러가 발생했습니다.

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

이 조건은 기능합니다.

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

다음과 같은 방법으로 에러가 발생했습니다.

<div ng-bind="{{vm.myModel}}"></div>

콧수염을 제거하여 수정합니다.

<div ng-bind="vm.myModel"></div>

ng-value의 select 옵션을 사용하다가 이 오류가 발생하여 ng-value 속성 대신 값을 유지했습니다.

<select>
    <option ng-repeat="employee in employees"
            title="{{employee.fullName}}"
            value="{{employee.email}}">
       {{employee.email}}
    </option>
</select>

언급URL : https://stackoverflow.com/questions/22115110/error-parselexerr-lexer-error-unexpected-next-character-on-heroku-deploy

반응형