2016-03-15 117 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'); 
相關問題