【问题标题】:ng-click Error: [$parse:syntax] Syntax Error: Token 'Object' is unexpected, expecting []]ng-click 错误:[$parse:syntax] 语法错误:令牌“对象”是意外的,应为 []]
【发布时间】:2016-04-05 21:05:18
【问题描述】:

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

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])].

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

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

有人在使用 ng-click 之前遇到过这个错误吗?

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

【问题讨论】:

  • 如果results 变量在范围内,那么请尝试ng-click='addressPicked(results[1])'

标签: javascript angularjs google-maps geocoding angularjs-ng-click


【解决方案1】:

不看完整代码,我猜你得到错误是因为

ng-click='addressPicked("+results[1]+")'

正在将 results[1] 转换为其字符串表示形式 [object Object] 并因此出现错误。

尝试不使用内引号

ng-click='addressPicked(results[1])'

【讨论】:

    【解决方案2】:

    你应该这样做:

    ng-click='addressPicked('+results[1]+')'
    

    因为result是一个变量(对象),所以必须不带引号传递。

    【讨论】:

      【解决方案3】:

      对于试图将 object 传递到下一个函数的人来说,上述答案都不起作用,完全正确。在这种情况下,您需要使用:

      ng-click='addressPicked(' + JSON.stringify(object) + ')'

      【讨论】:

        【解决方案4】:
        <div class="class1" id="id1" data-ng-click="click1(arg)" data-ng-class="{class2: expression, class3: expression, class4: expression }"> 
        

        当我的表达式像上面那样时,我遇到了类似的错误,当我像下面那样更改表达式时,问题得到了解决。在 ng-class 的所有类中添加单引号 ('')。

        <div class="class1" id="id1" data-ng-click="click1(arg)" data-ng-class="{ 'class2': expression, 'class3': expression, 'class4': expression }">
        

        【讨论】:

          猜你喜欢
          • 2019-02-09
          • 1970-01-01
          • 1970-01-01
          • 2015-05-28
          • 1970-01-01
          • 2016-10-31
          • 1970-01-01
          • 2014-09-23
          • 1970-01-01
          相关资源
          最近更新 更多