2016-03-15 101 views
1

我使用Umbraco 7.4,并创建了自定义Google地图属性编辑器,该编辑器在地图上启用了自动完成功能。Umbraco 7自定义属性编辑器

我在我的文档类型的谷歌地图属性下创建了一个单独的标准文本框属性,当用户从谷歌的自动完成功能中选择自动提示时,我更新了标准文本框属性的值,但是当我保存&发布节点,该值实际上并未与文本框一起存储。这很奇怪,因为如果我手动将文本写入文本框并发布,它就会很好地存储数据。我本质上是一名jQuery开发人员,所以当我看到Angular控制器内部的语法工作时,我有点惊讶......任何帮助都将非常感谢!

事件监听器哪里我更新的文本框的值(最后一行)

autocomplete.addListener('place_changed', function() { 
       infowindow.close(); 
       var place = autocomplete.getPlace(); 
       if (!place.geometry) { 
        return; 
       } 
       var coords = new google.maps.LatLng(place.geometry.location.lat(), place.geometry.location.lng()); 
        map.setCenter(coords); 

       // Set the position of the marker using the place ID and location. 
       marker.setPlace({ 
        placeId: place.place_id, 
        location: coords 
       }); 
       marker.setVisible(true); 

       infowindow.setContent('<div><strong>' + place.name + '</strong><br>' + 
        'Place ID: ' + place.place_id + '<br>' + 
        place.formatted_address); 
       infowindow.open(map, marker); 
       codeLatLng(coords, geocoder); 
       $('#googlePlaceID').val(place.place_id).text(place.place_id); 
      }); 

回答

0

我想出了一种-的哈克解决方案,引导角到看到的文本写在其他文本框属性编辑器,但它的作品。我将原始代码块中的最后一行替换为:

 $('#googlePlaceID').select().focus().val(place.place_id); 
     var e = document.getElementById('googlePlaceID'); 
     var $e = angular.element(e); 
     $e.triggerHandler('input'); 
相关问题