ng-click错误:[$ parse:syntax]语法错误:令牌'对象'是意外的,期待[]]

use*_*888 1 javascript google-maps geocoding angularjs angularjs-ng-click

当用户点击谷歌地图上的某个点时,我会反向地理编码,如下所示:

geocoder.geocode({'location': latlng}, function(results, status) {
            if (status === google.maps.GeocoderStatus.OK) {
                if (results[1]) {
                console.log(results[1]);
Run Code Online (Sandbox Code Playgroud)

在此阶段,结果[1]的控制台日志看起来像

Object {address_components: Array[4], formatted_address: "Rathmines, Co. Dublin, Ireland", geometry: Object, place_id: "ChIJN6MDC6kOZ0gRIhArCabX9o4", types: Array[2]}
Run Code Online (Sandbox Code Playgroud)

但是,当用户使用我弹出的地址点击infowindow时,我尝试将该对象传递给ng-click函数,如下所示:

ng-click='addressPicked("+results[1]+")'
Run Code Online (Sandbox Code Playgroud)

我收到了错误

Error: [$parse:syntax] Syntax Error: Token 'Object' is unexpected, expecting []] 
at column 23 of the expression [addressPicked([object Object])] starting at [Object])].
Run Code Online (Sandbox Code Playgroud)

我在另一个应用程序中工作,但我只是通过一个lat&long字符串.

在尝试将对象作为参数传递之前,是否需要将对象转换为其他对象?

任何人在使用ng-click之前遇到此错误?

任何帮助将不胜感激,谢谢.

小智 7

没有查看完整的代码,我的猜测是你得到错误,因为

ng-click='addressPicked("+results[1]+")'
Run Code Online (Sandbox Code Playgroud)

正在转换results[1]为其字符串表示形式[object Object],从而导致错误.

尝试使用没有内部引号

ng-click='addressPicked(results[1])'
Run Code Online (Sandbox Code Playgroud)