ng-click Error: [$parse:syntax] Syntax Error: Token 'Object' is unexpected, expecting []]
ng-click Error: [$parse:syntax] Syntax Error: Token 'Object' is unexpected, expecting []]
当用户点击 google 地图上的某个点时,我正在反向地理编码,如下所示:
geocoder.geocode({'location': latlng}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
if (results[1]) {
console.log(results[1]);
在此阶段,结果[1] 的控制台日志看起来像
Object {address_components: Array[4], formatted_address: "Rathmines, Co. Dublin, Ireland", geometry: Object, place_id: "ChIJN6MDC6kOZ0gRIhArCabX9o4", types: Array[2]}
但是当用户点击带有我弹出的地址的信息窗口时,我尝试将该对象传递给 ng-click 函数,如下所示:
ng-click='addressPicked("+results[1]+")'
我收到错误
Error: [$parse:syntax] Syntax Error: Token 'Object' is unexpected, expecting []]
at column 23 of the expression [addressPicked([object Object])] starting at [Object])].
我在另一个应用程序中使用它,但我只是传递一个纬度和经度字符串。
在尝试将对象作为参数传递之前,是否需要将对象转换为其他对象?
有人在使用 ng-click 之前遇到过这个错误吗?
非常感谢任何帮助,谢谢。
在不查看完整代码的情况下,我猜测您收到错误是因为
ng-click='addressPicked("+results[1]+")'
正在将 results[1]
转换为其字符串表示 [object Object]
,因此出现错误。
尝试不使用内引号
ng-click='addressPicked(results[1])'
你应该这样做:
ng-click='addressPicked('+results[1]+')'
因为result是一个变量(对象),必须不带引号传递。
对于试图将 对象 传递给下一个函数的人来说,以上答案均无效。在这种情况下,您需要使用:
ng-click='addressPicked(' + JSON.stringify(object) + ')'
<div class="class1" id="id1" data-ng-click="click1(arg)" data-ng-class="{class2: expression, class3: expression, class4: expression }">
当我的表达式像上面那样时,我遇到了类似的错误,当我像下面这样更改表达式时,问题得到解决。在 ng-class.
的所有 classes 中添加单引号 ('')
<div class="class1" id="id1" data-ng-click="click1(arg)" data-ng-class="{ 'class2': expression, 'class3': expression, 'class4': expression }">
当用户点击 google 地图上的某个点时,我正在反向地理编码,如下所示:
geocoder.geocode({'location': latlng}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
if (results[1]) {
console.log(results[1]);
在此阶段,结果[1] 的控制台日志看起来像
Object {address_components: Array[4], formatted_address: "Rathmines, Co. Dublin, Ireland", geometry: Object, place_id: "ChIJN6MDC6kOZ0gRIhArCabX9o4", types: Array[2]}
但是当用户点击带有我弹出的地址的信息窗口时,我尝试将该对象传递给 ng-click 函数,如下所示:
ng-click='addressPicked("+results[1]+")'
我收到错误
Error: [$parse:syntax] Syntax Error: Token 'Object' is unexpected, expecting []]
at column 23 of the expression [addressPicked([object Object])] starting at [Object])].
我在另一个应用程序中使用它,但我只是传递一个纬度和经度字符串。
在尝试将对象作为参数传递之前,是否需要将对象转换为其他对象?
有人在使用 ng-click 之前遇到过这个错误吗?
非常感谢任何帮助,谢谢。
在不查看完整代码的情况下,我猜测您收到错误是因为
ng-click='addressPicked("+results[1]+")'
正在将 results[1]
转换为其字符串表示 [object Object]
,因此出现错误。
尝试不使用内引号
ng-click='addressPicked(results[1])'
你应该这样做:
ng-click='addressPicked('+results[1]+')'
因为result是一个变量(对象),必须不带引号传递。
对于试图将 对象 传递给下一个函数的人来说,以上答案均无效。在这种情况下,您需要使用:
ng-click='addressPicked(' + JSON.stringify(object) + ')'
<div class="class1" id="id1" data-ng-click="click1(arg)" data-ng-class="{class2: expression, class3: expression, class4: expression }">
当我的表达式像上面那样时,我遇到了类似的错误,当我像下面这样更改表达式时,问题得到解决。在 ng-class.
的所有 classes 中添加单引号 ('')<div class="class1" id="id1" data-ng-click="click1(arg)" data-ng-class="{ 'class2': expression, 'class3': expression, 'class4': expression }">