Strange behaviour of $parse, if passed string starts with number

时间:2015-07-09 10:45:38

标签: angularjs

In a directive I want to use the $parse service to work with a passed in parameter. Then I have this behaviour which I do not understand:

  • depending on the nature of a passed in string, I get an

Error: $parse:syntax Syntax Error (https://docs.angularjs.org/error/$parse/syntax?p0=b&p1=is%20an%20unexpected%20token&p2=2&p3=1b&p4=b)

My Code:

console.log($parse('hallo')); // fine
console.log($parse('123'));   // fine
console.log($parse('b1'));    // fine
console.log($parse('1b'));    // error!

What's the problem?

1 个答案:

答案 0 :(得分:0)

关键在于$parse

的定义
  

将Angular 表达式转换为函数。

前三个字符串是有效表达式:第一个和第三个是有效的变量标识符,第二个是文字数字。然而,第4个是 NOT 一个有效的表达式(例如,标识符不能以数字开头,数字不能包含字母等等)。因此,您得到了解析错误。