2016-09-23 5 views
3

КомпонентGoogle Места автозаполнения не появляется

import Ember from 'ember'; 

export default Ember.TextField.extend({ 
type: 'text', 

didInsertElement: function() { 
    this.$().addClass("form-control"); 
    var autocomplete = new google.maps.places.Autocomplete(
    (document.getElementById('autocomplete')),{types:['geocode']} //trying without jQuery, but still. 
); 
}}); 

Шаблон

{{gp-textfield id="autocomplete"}} 

, который оказывает

<input id="autocomplete" type="text" class="ember-view ember-text-field form-control" placeholder="Enter a location" autocomplete="off"> 

, но до сих пор, я получаю:

InvalidValueError: not an instance of HTMLInputElement 

Любая помощь была бы действительно оценена.

EDIT: Ember 2,6

вычистил код немного, без толка

didInsertElement: function() { 
    this.$().addClass("form-control"); 
    var element = document.getElementById('autocomplete'); 
    var autocomplete = new google.maps.places.Autocomplete(element); 
} 
+0

Не решение вашей проблемы, но вы можете использовать свойства класса ["classNames"] (http://emberjs.com/api/classes/Ember.Component.html#property_classNames) для указания имен классов для компонент. Он также свяжет их с именами классов родительского класса и любыми классами, указанными в шаблоне атрибутом 'class'. – akst

+0

Также он может быть связан с проблемой, но вместо переопределения didInsertElement я бы рекомендовал определить новый метод, но определите его как 'Ember.on ('didElementInsert', )', он все равно будет работать на вставляем, но не переопределяя метод didInsertElement в родительских классах, альтернативно вы можете вызвать this._super (аргументы) в начале функции, но я чувствую, что первое является более аккуратным. – akst

+0

Дополнительная информация о переопределении ['didInsertElement'] (https://guides.emberjs.com/v2.6.0/components/the-component-lifecycle/#toc_integrating-with-third-party-libraries-with-code-didinsertelement- код), больше на ['Ember.on'] (http://emberjs.com/api/classes/Function.html#method_on) – akst

ответ

1

Используется вкладка Сети в хроме.

Очевидно, что у моего ключа API не было разрешения использовать эту функцию, и мне пришлось включить ее.

Смежные вопросы